我正在使用 Visual Studio IDE 开发 C++ windowsform 项目。
我用CFileDialog
类要求用户选择要打开的文件。
它显示通常打开的文件选择窗口。
我希望显示的默认文件夹与单击“我的电脑”时访问的文件夹相同,其中显示硬盘驱动器、USB 驱动器、DVD 驱动器等。
我可以通过将其路径写入来定义默认文件夹lpstrInitialDir
成员,但我找不到这样的文件夹的路径。我尝试了“\”、“explorer.exe”、“”,但没有一个给我预期的结果。
该应用程序将由多个用户使用,因此解决方案不得在路径中包含用户名。即“C:\Documents and Settings[user]\Desktop\My Computer”可能有效,但对于我的应用程序来说不正确。
有谁知道定义 Windows 的“根”路径(即 C:\ 的根)?
我在 SO 和互联网上搜索,但也许我使用了错误的关键字,因为我找不到合适的内容。
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 的未来版本中发生变化。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)