Environment.SpecialFolder.ProgramFiles返回错误的目录
本文关键字:错误 返回 SpecialFolder ProgramFiles Environment | 更新日期: 2023-09-27 18:00:08
我正在进行一个C#项目,我正在使用以下代码:
string rootPath = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);
但是,当我查看rootPath时,它被设置为C:''Program Files(x86)。
为什么要这样做,因为有一个Environment.SpecialFolder.ProgramFilesX86
,我本以为会返回上面的。
如果您的项目当前以x86
平台为目标,那么这两个枚举值都将返回Program Files(x86)
目录。
将项目的目标平台更改为x64
,SpecialFolder.ProgramFiles
应该返回Program Files
目录。
我有一个场景,我无法更改执行程序集的目标。所以我使用这个方法来获得x64(也在32位运行时):
var programFilesX64 = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64)
.OpenSubKey(@"SOFTWARE'Microsoft'Windows'CurrentVersion")?.GetValue("ProgramFilesDir");