可能重复:
如何获得Windows Vista 64位上的程序文件(x86)
我意识到用户更改Windows默认的C:Program Files的几率是相当渺茫,但奇怪的事情发生了!
我怎样才能从系统中获得Program Files的正确path?
定制的用户界面 – Windows还是Linux?
如何在身份翻译之前检测缺less的域控制器?
如何模拟慢读和慢读磁盘驱动器
如何在不安装MS Office并且不使用Interop库的情况下读取服务器中的MS Office文件?
C#获取networking上的图像的宽度/高度,而无需下载整个文件?
Windows服务 – OnSessionChange – 慢速通知
如何防止显示“程序意外终止”窗口?
如何使用C#/ .NET代码获取ClickOnce应用程序path和版本号?
为什么winform面板仅在鼠标hover或鼠标点击时更新?
.net 4.5正确的Windows服务启动方法
.NET为程序文件,我的文档等提供了“ 特殊文件夹 ”的枚举。
从枚举转换为实际路径的代码如下所示:
Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)
http://msdn.microsoft.com/en-us/library/14tx8hby.aspx
只是为了增加这一点。
如果你在32位模式下运行(即使在64位操作系统上),SpecialFolder.ProgramFiles和%PROGRAMFILES%将返回..程序文件(x86)。
32位系统:
SpecialFolder.ProgramFiles = ..程序文件
32位进程中的64位系统: SpecialFolder.ProgramFiles = ..程序文件(x86) Environment.GetEnvironmentvariable("ProgramW6432") ProgramW6432 Environment.GetEnvironmentvariable("ProgramW6432") = ..程序文件
64位系统中的64位系统: SpecialFolder.ProgramFiles = ..Program Files Environment.GetEnvironmentvariable("PROGRAMFILES(X86)") = ..程序文件(x86)
显然这取决于你的语言环境等…
您将在Environment类中使用GetFolderPath 。
try { Environment.GetFolderPath( Environment.SpecialFolder.ProgramFiles ) catch( ArgumentException ex ) { Console.Out.WriteLine( ex.StackTrace ); }
Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)可能是最好的解决方案,但另一个可能的变体是评估ProgramFiles环境变量的值。 为此,可以使用Environment类的GetEnvironmentvariable或ExpandEnvironmentvariables方法:
Environment.GetEnvironmentvariable("ProgramFiles") Environment.ExpandEnvironmentvariables("%ProgramFiles%")
您可以访问名为:%PROGRAMFILES%的环境变量
即:
%PROGRAMFILES%MaxisSimCity
在C#中:
System.Environment.SpecialFolder.ProgramFiles
Environment.GetEnvironmentvariable("PROGRAMFILES(X86)") ?? Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)
在64位Windows中获得“程序文件(x86)”,在32位中获得“程序文件”。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。