我正在使用Visual Studio IDE开发C ++ windowsform项目
我使用CFileDialog
类要求用户选择要打开的文件。
它显示常用的打开文件选择窗口。
我希望显示的默认文件夹与单击"我的电脑"时显示的默认文件夹相同,其中显示硬盘驱动器,USB驱动器,DVD驱动器等。
我可以通过将其路径写入lpstrInitialDir
成员来定义默认文件夹,但我找不到此类文件夹的路径。我试过" \"," explorer.exe","",他们都没有给我预期的结果。
该应用程序将由多个用户使用,因此解决方案不得在路径中包含用户名。即" C:\ Documents and Settings [user] \ Desktop \ My Computer"可能有效,但对我的申请不正确。
有谁知道定义" root"窗口的路径(即C:\的根)?
我搜索了SO和互联网,但也许我使用了错误的关键字,因为我无法找到合适的内容。
答案 0 :(得分:12)
My Computer
是一个虚拟shell文件夹,与任何文件系统目录都不对应。没有与该位置对应的文件系统路径。
幸运的是,文件对话框确实说“shellese”,因此您可以使用shell文件夹的CLSID(不要与GUID KNOWNFOLDERID或CSIDL混淆)。 C#Winforms中的示例,但实际上,唯一重要的部分是::CLSID
):
var ofd = new OpenFileDialog();
ofd.InitialDirectory = "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}";
ofd.ShowDialog();
免责声明:我找不到虚拟文件夹CLSID的任何相关文档,或“文件”对话框的此行为。因此,这很可能不是契约性的,并且可能会在未来的Windows版本中发生变化。
答案 1 :(得分:1)
路径应为:C:\ Users \ UserName \ Desktop \ Computer.lnk
答案 2 :(得分:1)
在资源管理器中,在搜索栏中复制地址
This PC
然后选择文本
This PC
然后粘贴。通常我们会得到
Ce PC“ :: {CLSID}”
然后复制
:: {CLSID}
并将其粘贴到我们想要的任何地方。