我想将WindowsAPICodePack CommonOpenFileDialog
的InitialDirectory
属性设置为我的计算机位置,我使用等效的CLSID或GUID做到了,或者这到底是什么,只是我想知道是否存在一种更本机/安全的方式来正确设置我的计算机位置,我已经尝试过这个但没有奏效:
.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer)
这是我正在使用的代码:
Dim FolderPicker As New Microsoft.WindowsAPICodePack.Dialogs.CommonOpenFileDialog
With FolderPicker
.IsFolderPicker = True
.Title = "Folder Dialog Test"
.InitialDirectory = "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}" ' My Computer
.DefaultFileName = "C:"
End With
更新:
我使用的是Windows 8 x64。
其他特殊文件夹(如库和桌面)的工作方式如下:
.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
Environment.GetFolderPath 从不返回 MyComputer 的路径,因为实际上没有路径。
从 MSDN 文档:
MyComputer 常量始终生成空字符串 ("),因为没有 为"我的电脑"文件夹定义路径。
这意味着您的解决方案是最好的(并且可能没有太多人知道)。为了将来的兴趣,这里是可用CLSID列表的链接。