bra*_*zoo 21 .net c# windows windows-xp program-files
我意识到用户改变Windows默认值的可能性C:\Program Files相当小,但是发生了奇怪的事情!
如何Program Files从系统中获取正确的路径?
bra*_*zoo 35
.NET 为Program Files,My Documents等提供了" 特殊文件夹 " 的枚举.
从枚举转换为实际路径的代码如下所示:
Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)
Run Code Online (Sandbox Code Playgroud)
http://msdn.microsoft.com/en-us/library/14tx8hby.aspx
Joh*_*n B 28
只是为了补充这一点.
如果您在32位模式下运行(即使在64位操作系统上),SpecialFolder.ProgramFiles和%PROGRAMFILES%将返回..Program Files(x86).
如果您特别需要一个和/或另一个,那么您需要检查如下:
32位系统:
SpecialFolder.ProgramFiles = ..程序文件
32位进程中的64位系统:
SpecialFolder.ProgramFiles= ..程序文件(x86)\
Environment.GetEnvironmentVariable("ProgramW6432")= ..程序文件\
64位系统中64位的过程:
SpecialFolder.ProgramFiles= ..Program文件\
Environment.GetEnvironmentVariable("PROGRAMFILES(X86)")= ..Program文件(x86)\
显然这取决于你的语言环境等......
您可以在Environment类中使用GetFolderPath.
try {
Environment.GetFolderPath( Environment.SpecialFolder.ProgramFiles )
catch( ArgumentException ex ) {
Console.Out.WriteLine( ex.StackTrace );
}
Run Code Online (Sandbox Code Playgroud)