我如何使用OpenFileDialog类,使其在网络区域默认打开?

时间:2010-05-12 19:51:08

标签: c# wpf openfiledialog

如何使用OpenFileDialog类(在C#,WPF等中),使其在网络区域默认打开?

这不起作用:

  OpenFileDialog openFileDialog1 = new OpenFileDialog();
  openFileDialog1.InitialDirectory = "Network";

我还尝试将“\”作为InitialDirectory,但是没有用。

我也尝试将“\\”作为InitialDirectory,但也没有用。

2 个答案:

答案 0 :(得分:8)

我没试过,但这应该有效:

openFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.NetworkShortcuts);

Environment.GetFolderPath以字符串形式返回与Environment.SpecialFolder枚举条目对应的路径。

Environment.SpecialFolder.NetworkShortcuts定义为

  

包含的文件系统目录   可能存在于中的链接对象   我的网络位置虚拟文件夹。

答案 1 :(得分:1)

来自Microsoft MSDN Magazine的

Customize Your Open File Dialog在对话框中有很多的信息。我没有机会全部阅读,但这引起了我的注意:

  

自定义位置栏
  ...

     

如果文件夹的名称是绝对路径或相对路径,则需要REG_SZ条目。如果要定位特殊文件夹,则需要使用特定于文件夹的编号(有关列表,请参见图6)。在这种情况下,需要REG_DWORD条目。

     

图6

     

文件夹ID

     

ID文件夹
  0桌面
  2开始菜单上的程序文件夹
  3控制面板
  4台打印机
  5我的文件
  6收藏夹
  7开始菜单上的7 Startup文件夹
  8近期档案
  9发送至
  10回收站
  12开始菜单
  17我的电脑
  18我的网络位置
  20个字体

我错过了一大堆东西(因为它是一篇很长的文章),但看起来你可以将ID值设置为18以获得你的网络位置。但是,正如@Nelson所指出的那样,这可能部分看起来就是在条形图中添加一个条目,所以在使用之前要仔细检查它。正如我之前所说的那样,我链接到的帖子包含了一个很多的信息,所以你需要的东西很可能被埋在其中。

<强>更新

在Windows 7 PC上它不起作用。例如:

OpenDialogPlaces o = new OpenDialogPlaces();
//o.Places.Add(18);
//o.Places.Add(5);
//o.Places.Add(6);
o.Init();
o.OpenDialog.ShowDialog();
o.Reset();

仍然显示左手中的所有内容:

enter image description here

它在以前版本的Windows中有效:

enter image description here

另一件事似乎微软已经改变了ComDlg32的位置,我尝试了两个地方但没有运气。

enter image description here