我在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操作系统。
答案 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”。