【问题标题】:What is the path of "my computer" folder on windows?Windows上“我的电脑”文件夹的路径是什么?
【发布时间】:2016-07-04 02:17:21
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: windows winforms


    【解决方案1】:

    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 或文件对话框的这种行为的任何相关文档。因此,这很可能不是合同规定的,并且可能会在未来的 Windows 版本中发生变化。

    【讨论】:

    • 你从哪里得到这个 GUID?
    • 这很有趣:它可以工作,但 KNOWNFOLDERID 中没有引用 GUID
    • @Thomas 老实说,我不知道我最初是从哪里得到的。可能通过查看资源管理器中的“真实”路径(不要问我如何做到这一点 - 我不记得了:D)。当然,它是 HKCR 中的 CLSID,但是当您首先尝试找到它时,这无济于事。我找不到任何相关文档,所以它可能不是合同性的,但它就像 Windows 98 IIRC 一样存在。
    • 它也适用于我。我将阅读 CLSID,因为我现在不明白它是如何工作的......如果有人有关于这个 ID 来自哪里或关于它的兼容性的文档,感谢添加它。感谢您的帮助。
    • @dudu721 一般情况下,CLSID 都已记录在案 - 这就是您为 shell 编写自定义虚拟文件夹的方式。一个简单的 Google 搜索将为您提供相关的 MSDN 文档。 shell 在注册表中查找 CLSID 以找出处理该特定虚拟文件夹的扩展程序。只有“我的电脑”CLSID 才是这里的“问题”——它似乎没有记录在案。它从 Win 98 开始就可以工作,因此向后兼容并不是什么大问题。将来可能会被删除(或更改),但可能性不大。
    【解决方案2】:

    在资源管理器中,在搜索栏中复制地址

    This PC
    

    然后选择文字

    This PC
    

    并粘贴。通常我们会得到

    Ce PC ":: {CLSID}"

    然后复制

    :: {CLSID}
    

    并将其粘贴到我们想要的任何位置。

    【讨论】:

      【解决方案3】:

      路径应该是:C:\Users\UserName\Desktop\Computer.lnk

      【讨论】:

      • 这只有在用户的桌面上有一个名为“计算机”的快捷方式时才有效。
      • 这台电脑在 Windows 10 上怎么样?
      猜你喜欢
      • 2021-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-12
      • 2023-03-28
      • 2014-06-30
      • 1970-01-01
      • 2013-01-29
      相关资源
      最近更新 更多