我正在使用Visual Studio IDE开发C++ windowsform项目.
我使用CFileDialog
class来要求用户选择要打开的文件.它显示常用的打开文件选择窗口.我希望显示的默认文件夹与单击"我的电脑"时访问的文件夹相同,其中显示硬盘驱动器,USB驱动器,DVD驱动器等.
我可以通过将其路径写入lpstrInitialDir
成员来定义默认文件夹,但是我找不到这样一个文件夹的路径.我试过"\","explorer.exe","",他们都没有给我预期的结果.该应用程序将由多个用户使用,因此解决方案不得在路径中包含用户名.即"C:\ Documents and Settings [user]\Desktop\My Computer"可能有效,但对我的应用程序不正确.
有谁知道定义windows的"根"路径(即C:\的根)?
我搜索了SO和互联网,但也许我使用了错误的关键字,因为我找不到合适的内容.
Lua*_*aan 15
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();
Run Code Online (Sandbox Code Playgroud)
免责声明:我找不到虚拟文件夹CLSID的任何相关文档,或文件对话框的此行为.因此,这很可能不是契约性的,并且可能在未来的Windows版本中发生变化.
归档时间: |
|
查看次数: |
9299 次 |
最近记录: |