如何获取Program Files目录

本文关键字:Program Files 目录 获取 何获取 | 更新日期: 2023-09-27 18:23:52

我正试图在64位操作系统中获取程序文件目录。下面的代码返回相同的答案Program Files (x86):

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

有什么帮助吗?

如何获取Program Files目录

当然,您必须以64位模式运行程序。然后这将打印

C:'Program Files (x86)
C:'Program Files 

转到:项目>您的项目属性…>构建>禁用首选32位

这就是您想要的:

Environment.GetEnvironmentVariable("ProgramW6432")

它将返回x64程序目录的路径。

有关环境变量和WOW64的更多信息,请阅读此处:https://msdn.microsoft.com/en-us/library/windows/desktop/aa384274(v=vs.85).aspx

对于这个

Console.WriteLine(Environment.GetEnvironmentVariable("ProgramFiles(x86)"));

请查看此链接C#-如何在Windows 64位上获取程序文件(x86)

上面的链接显示它将在所有这三种Windows配置中返回x86 Program Files directory

32位Windows
在64位Windows上运行的32位程序
在64位窗口上运行的64位程序

解决方案:

我们需要告诉编译器不要选择特定的构建平台。

Go to Visual Studio > Project Properties > Build > Uncheck "Prefer 32 bit"

原因:

默认情况下,对于大多数.NET项目;任何CPU 32位优选的";

当您取消选中32位程序集时,将:

32位进程上的JIT到32位代码

64位进程上的JIT到32位代码

C#代码:

Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86)

输出:

C:''Program Files(x86)