如何使用 OpenFileDialog 类(在 C#、WPF 等中)使其默认在网络区域打开?
这不起作用:
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.InitialDirectory = "Network";
我还尝试将“\”作为 InitialDirectory,但没有奏效。
我还尝试将“\\”作为 InitialDirectory,但这也不起作用。
如何使用 OpenFileDialog 类(在 C#、WPF 等中)使其默认在网络区域打开?
这不起作用:
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.InitialDirectory = "Network";
我还尝试将“\”作为 InitialDirectory,但没有奏效。
我还尝试将“\\”作为 InitialDirectory,但这也不起作用。
我没有尝试过,但这应该有效:
openFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.NetworkShortcuts);
Environment.GetFolderPath
Environment.SpecialFolder
以字符串形式返回与枚举条目对应的路径。
Environment.SpecialFolder.NetworkShortcuts
定义为
包含可能存在于网上邻居虚拟文件夹中的链接对象的文件系统目录。
来自 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 的位置的另一件事,我尝试了这两个地方但没有运气。