在 OpenFileDialog (WindowsAPICodePack) 上设置“我的电脑”位置

Ele*_*ios 5 .net vb.net openfiledialog winforms windows-api-code-pack

我想将InitialDirectorya的属性设置WindowsAPICodePack CommonOpenFileDialog我的计算机位置,我使用等效的CLSIDGUID或这到底是什么,只是我想知道是否存在更本地/安全的方法来正确设置我的计算机位置,我试过这个,但没有奏效:

.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer) 
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的代码:

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
Run Code Online (Sandbox Code Playgroud)

更新:

我在 Windows 8 x64 上。

其他特殊文件夹(例如库和桌面)的工作方式如下:

.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) 
Run Code Online (Sandbox Code Playgroud)

com*_*ech 4

Environment.GetFolderPath 永远不会返回 MyComputer 的路径,因为实际上没有它的路径。

来自MSDN 文档

MyComputer 常量始终生成空字符串 (""),因为没有为“我的电脑”文件夹定义路径。

这意味着您的解决方案是最好的解决方案(并且可能没有太多人知道​​)。出于将来的兴趣,这里是可用 CLSID 列表的链接。