windows - Windows 上 "my computer"文件夹的路径是什么?

标签 windows winforms

我正在使用 visual Studio IDE 开发 C++ windowsform 项目。
我使用 CFileDialog 类要求用户选择要打开的文件。 它显示一个通常打开的文件选择窗口。 我希望显示的默认文件夹与单击“我的电脑”时访问的文件夹相同,其中显示了硬盘驱动器、USB 驱动器、DVD 驱动器等。

我可以通过将其路径写入lpstrInitialDir 成员来定义默认文件夹,但我找不到此类文件夹的路径。我尝试了“\”、“explorer.exe”、“”,它们都没有给我预期的结果。 该应用程序将由多个用户使用,因此解决方案不得在路径中包含用户名。即“C:\Documents and Settings[用户]\Desktop\My Computer”可能有效,但不适合我的应用程序。

有谁知道定义 windows 的“根”路径(即 C:\的根)?

我在 SO 和互联网上进行了搜索,但可能我使用了错误的关键字,因为我找不到合适的内容。

最佳答案

My Computer 是一个不对应任何文件系统目录的虚拟外壳文件夹。没有与该位置对应的文件系统路径。

幸运的是,文件对话框会说“shellese”,因此您可以使用 shell 文件夹的 CLSID(不要与 GUID KNOWNFOLDERID 或 CSIDL 混淆)。 C# Winforms 中的示例,但实际上,唯一重要的部分是 ::CLSID):

var ofd = new OpenFileDialog();
ofd.InitialDirectory = "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}";
ofd.ShowDialog();

免责声明:我找不到虚拟文件夹 CLSID 或"file"对话框的这种行为的任何相关文档。因此,这很可能不是契约(Contract)规定的,并且可能会在未来的 Windows 版本中发生变化。

关于windows - Windows 上 "my computer"文件夹的路径是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36065536/

相关文章:

windows - 适用于 Windows 的 Docker SSL 证书

c# - 通知自定义声音不播放 UWP

windows - GNU CC 和 Windows

c++ - ListView 列的宽度不受尊重

windows - Ant BuildException 错误构建 Hadoop 2.4.1

C# Windows 窗体 - 在控件外部单击后隐藏控件

c# - 从最小化状态恢复后,表单具有最小尺寸

c# - 避免 datagridview 的按钮点击/控件;自动显示

c# - F5 或开始调试按钮对于 Winform 应用程序是灰色的吗?

vb.net - 初始化时关闭 Windows 窗体