C#OpenFileDialog未显示网络位置或映射驱动器

时间:2014-09-17 13:50:44

标签: c# winforms

我在winforms .net 3.5 app中使用C#OpenFileDialog来浏览文件,但无法看到映射的网络位置,我的代码如下:

        OpenFileDialog ofd = new OpenFileDialog();
        string desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
        ofd.InitialDirectory = desktop;
        ofd.Filter = "Word 97-2003 Documents (*.doc)|*.doc|Word 2007 Documents (*.docx)|*.docx";
        System.Windows.Forms.DialogResult dr = ofd.ShowDialog();
        if (dr == DialogResult.OK)
        {
            txtFilepath.Text= ofd.FileName;
        }

我使用的是Win7操作系统。

2 个答案:

答案 0 :(得分:0)

试试这个

FolderBrowserDialog fbd = new FolderBrowserDialog();

fbd.Description = "Custom Description";
fbd.SelectedPath = <A path to your mapped drive>;

答案 1 :(得分:0)

我有同样的问题。我想我已经知道了,或者至少是一部分。

网络位置由用户创建。这意味着如果用户“ Jeff”创建了网络位置,则只有当他试图通过程序打开文件时,他才会看到网络位置。

例如:

我们的用户“ Jeff”打开记事本,并尝试通过记事本界面(文件>打开)打开文件。然后,他将能够看到网络驱动器并打开他想要的任何文件。

如果我们的同一用户“ Jeff”以管理员身份打开记事本(意味着它以其他用户身份打开)并尝试打开文件。他将无法看到网络位置。 (当然,在两种情况下,您都可以使用\ servername \ mapname等导航到服务器)

我找到了可能的解决方案

Forcing windows to make the network drives available to standart and administrator acounts

1-运行regedit

2-找到HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Windows / CurrentVersion / Policies / System

3-创建一个名为EnableLinkedConnections且值为1的新DWORD条目。

4-重新启动计算机

5-现在,您可以在这些安装程序或应用程序中查看和使用网络驱动器。

Making sure every user gets the network drives added as soon as they login:

使用以下几行添加脚本

net use e: /delete
net use e: \\myserv\myshare

文件夹中的“ \ ProgramData \ Microsoft \ Windows \ Start Menu \ Programs \ StartUp”。