【问题标题】:Environment.SpecialFolder.ProgramFiles value for a 32-bit application on Windows 7?Windows 7 上 32 位应用程序的 Environment.SpecialFolder.ProgramFiles 值?
【发布时间】:2011-03-24 19:01:20
【问题描述】:

在 Windows 7 上运行的 32 位应用程序会为以下返回什么?

Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)

C:\Program Files (x86)C:\Program Files?

【问题讨论】:

  • This 也可能有用(另一个 SO 问题)。
  • 我认为这假设是英文版的 Windows。
  • 您想要来自 32 位进程文件系统视图还是 64 位进程(例如 Windows 资源管理器)的文件系统视图的路径?

标签: c# windows-7 program-files


【解决方案1】:

返回什么并不重要。任一值都将映射到同一个文件夹,文件系统虚拟化将始终将其映射到 (x86) 以用于 32 位应用程序。

【讨论】:

    【解决方案2】:

    我运行的是 Windows 7 Ultimate 32 位,所以我想知道返回了什么,所以我把它放到控制台应用程序中看看返回了什么

    Console.WriteLine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles));
    

    它返回 C:\Program Files

    【讨论】:

      【解决方案3】:

      “C:\Program Files (x86)”

      【讨论】:

        【解决方案4】:

        在 32 位 Windows 7 上,您应该得到“C:\Program Files”,在 64 位上应该得到“C:\Program Files (x86)”。

        【讨论】:

        • 我们能否以任何方式获取路径 C:\Program Files (x86) 而不是 C:\Program Files?
        • 在 32 位系统上不需要添加“x86”。如果您想在 64 位系统上运行 64 位应用程序时也获得 x86 路径,请改为请求 Environment.SpecialFolder.ProgramFilesX86。
        • 这并不完全正确 - 它取决于进程的位数...SpecialFolder.ProgramFiles 在 x64 操作系统上的 x86 构建中为您提供 C:\Program Files (x86)
        【解决方案5】:

        C:\Program Files (x86)

        【讨论】:

          猜你喜欢
          • 2011-03-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-11-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多