5

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

这不起作用:

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

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

我还尝试将“\\”作为 InitialDirectory,但这也不起作用。

4

2 回答 2

8

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

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

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

Environment.SpecialFolder.NetworkShortcuts定义为

包含可能存在于网上邻居虚拟文件夹中的链接对象的文件系统目录。

于 2010-05-12T20:10:55.273 回答
1

来自 Microsoft MSDN 杂志的自定义您的打开文件对话框很多关于该对话框的信息。我没有机会阅读全部内容,但这引起了我的注意:

一个自定义的地方酒吧
...

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

图 6

文件夹 ID

ID 文件夹
0 桌面
2 开始菜单上的程序文件夹
3 控制面板
4 打印机
5 我的文档
6 收藏夹
7 开始菜单上的启动文件夹
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();

仍然在左侧显示所有内容:

在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述

于 2010-05-12T19:56:01.157 回答