Leo*_*tin 151 c# windows 64-bit file
我正在使用:
FileInfo(
System.Environment.GetFolderPath(
System.Environment.SpecialFolder.ProgramFiles)
+ @"\MyInstalledApp"
Run Code Online (Sandbox Code Playgroud)
为了确定是否在用户机器上检测到程序(这不是理想的,但我正在寻找的程序是MS-DOS应用程序的正确旧程序,我想不出另一种方法).
在Windows XP和32位版本的Windows Vista上,这可以正常工作.但是,在x64 Windows Vista上,代码返回x64 Program Files文件夹,而应用程序安装在Program Files x86中.有没有办法以编程方式返回程序文件x86的路径,而无需硬连线"C:\ Program Files(x86)"?
Jar*_*Par 229
以下函数将返回Program Files所有这三种Windows配置中的x86 目录:
static string ProgramFilesx86()
{
if( 8 == IntPtr.Size
|| (!String.IsNullOrEmpty(Environment.GetEnvironmentVariable("PROCESSOR_ARCHITEW6432"))))
{
return Environment.GetEnvironmentVariable("ProgramFiles(x86)");
}
return Environment.GetEnvironmentVariable("ProgramFiles");
}
Run Code Online (Sandbox Code Playgroud)
Nat*_*han 132
如果您使用的是.NET 4,则会有一个特殊的文件夹枚举ProgramFilesX86:
Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86)
Run Code Online (Sandbox Code Playgroud)
Car*_*erg 42
Environment.GetEnvironmentVariable("PROGRAMFILES(X86)") ?? Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)
Run Code Online (Sandbox Code Playgroud)
cha*_*ers 14
但请注意,ProgramFiles(x86)只有在应用程序运行64位时,环境变量才可用.
如果您的应用程序运行32位,您可以使用ProgramFiles其值实际上为"Program Files(x86)" 的环境变量.
一种方法是查找"ProgramFiles(x86)"环境变量:
String x86folder = Environment.GetEnvironmentVariable("ProgramFiles(x86)");
Run Code Online (Sandbox Code Playgroud)
小智 5
我正在编写一个可以在Windows 7的x86和x64平台上运行的应用程序,并查询下面的变量只需在任何平台上拉出正确的程序文件文件夹路径.
Environment.GetEnvironmentVariable("PROGRAMFILES")
Run Code Online (Sandbox Code Playgroud)