C# Windows 7上32位应用程序的Environment.SpecialFolder.ProgramFiles值?

C# Windows 7上32位应用程序的Environment.SpecialFolder.ProgramFiles值?,c#,windows-7,program-files,C#,Windows 7,Program Files,在Windows7上运行的32位应用程序在以下情况下会返回什么 Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) C:\Program Files(x86)或C:\Program Files(x86)C:\Program Files(x86)在32位Windows 7上,您应该在64位的“C:\Program Files(x86)”上获得“C:\Program Files(x86)”。我正在运行Windows 7

在Windows7上运行的32位应用程序在以下情况下会返回什么

Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)

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

C:\Program Files(x86)

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

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

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

它返回了C:\Program Files

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

我们可以通过任何方式获得路径C:\Program Files(x86)而不是C:\Program Files吗?在32位系统上不需要添加“x86”。如果您想在64位系统上运行64位应用程序时获得x86路径,请改为请求Environment.SpecialFolder.ProgramFilesX86。这不是完全正确的-这取决于进程的位数
SpecialFolder.ProgramFiles
在x64操作系统上的x86版本中为您提供了C:\Program Files(x86)可能也很有用(另一个问题)。我认为这假设是英文版本的Windows。您希望路径来自32位进程文件系统视图还是64位进程(例如Windows资源管理器)的文件系统视图?