Windows中的“Program Files(X86)”文件夹和“Program Files”文件夹有什么不同?

您的Windows PC上很可能同时有“C:\Program Files”和“C:\Program Files(X86)”文件夹。如果您四处查看,您会发现一些程序安装在一个文件夹中,另一些安装在另一个文件夹中。

32位Windows与64位Windows

相关:32位和64位Windows有什么不同?

最初,Windows只提供32位操作系统。在32位版本的Windows上-即使是32位版本的Windows10,现在仍然可以使用-你只会看到一个“C:\Program Files”文件夹。

此Program Files文件夹是建议您安装的程序存储其可执行文件、数据和其他文件的位置。换句话说,程序安装到Program Files文件夹中。

在64位版本的Windows上,64位应用程序安装到Program Files文件夹。不过,64位版本的Windows也支持32位程序,微软不希望32位和64位软件混为一谈。因此,32位程序被安装到“C:\Program Files(X86)”文件夹中。

Windows在64位版本的Windows上运行32位应用程序,使用的是名为“WOW64”的东西,它代表“Windows 64-bit上的Windows 32-bit”。

当您在64位版本的Windows上运行32位程序时,WOW64模拟层将其文件访问从“C:\Program Files”无缝重定向到“C:\Program Files(X86)”。32位程序尝试访问Program Files目录,并指向Program Files(X86)文件夹。64位程序仍然使用普通的Program Files文件夹。

每个文件夹中存储的内容

总之,在32位版本的Windows上,您只有一个“C:\Program Files”文件夹。它包含所有已安装的程序,所有这些程序都是32位的。

在64位版本的Windows上,64位程序存储在“C:\Program Files”文件夹中,32位程序存储在“C:\Program Files(X86)”文件夹中。

这就是为什么不同的程序似乎随机分布在两个Program Files文件夹中的原因。“C:\Program Files”文件夹中的是64位,而“C:\Program Files(X86)”文件夹中的是32位。

他们为什么要分开?

这是为旧的32位程序设计的兼容性功能。这些32位程序甚至可能没有意识到64位版本的Windows的存在,所以Windows让它们远离64位代码。

32位程序无法加载64位库(DLL文件),如果尝试加载特定的DLL文件时发现64位文件而不是32位文件,则可能会崩溃。64位程序也是如此。将不同CPU体系结构的不同程序文件分开可以防止发生类似的错误。

例如,假设Windows只使用了一个Program Files文件夹。32位应用程序可能会查找位于C:\Program Files\Microsoft Office中的Microsoft Office DLL文件,并尝试加载该文件。但是,如果您安装了64位版本的Microsoft Office,应用程序将崩溃并无法正常工作。使用单独的文件夹,该应用程序将根本找不到DLL,因为64位版本的Microsoft Office将位于C:\Program Files\Microsoft Office,而32位应用程序将在C:\Program Files(X86)\Microsoft Office中查找。

当开发人员创建应用程序的32位和64位版本时,这也很有帮助,特别是在某些情况下需要同时安装这两个版本时。32位版本自动安装到C:\Program Files(X86),64位版本自动安装到C:\Program Files。如果Windows使用单个文件夹,应用程序的开发人员将不得不将64位文件夹安装到不同的文件夹中,以保持它们的分离。开发人员在哪里安装不同的版本可能没有真正的标准。

为什么将32位文件夹命名为(X86)?

您不会总是看到“32位”和“64位”。取而代之的是,你有时会看到“x86”和“x64”来指代这两种不同的架构。“这是因为早期的电脑使用的是英特尔8086芯片。”最初的芯片是16位的,但新版本变成了32位。“x86”现在指的是64位之前的体系结构--无论是16位还是32位。较新的64位体系结构被称为“x64”。

这就是“Program Files(X86)”的意思。它是使用旧x86CPU架构的程序的Program Files文件夹。不过,只需注意,64位版本的Windows不能完全运行16位代码。

这通常无关紧要

相关:Windows中的AppData文件夹是什么?

通常情况下,程序的文件存储在Program Files还是Program Files(X86)中并不重要。Windows会自动将程序安装到正确的文件夹中,因此您不必考虑这一点。无论程序安装在哪里,程序都会出现在“开始”菜单中,并且功能正常。32位和64位程序都应该将您的数据存储在像AAPPDATA和TAPPDATA这样的文件夹中,而不是存储在任何Program Files文件夹中。只需让您的程序自动决定使用哪个Program Files文件夹即可。

如果你使用的是便携应用程序,它可以从你系统上的任何文件夹运行,所以你不必担心把它们放在哪里。我们喜欢将便携应用程序放在Dropbox或其他类型的云存储文件夹中,这样它们就可以在我们所有的PC上使用。

您有时需要知道程序存储在哪里。例如,假设您想要进入您的Steam目录来备份一些文件。您可以在C:\Program Files(X86)中找到它,因为Steam是一个32位程序。

如果您不确定您安装的程序是否是64位的,并且您正在查找其安装文件夹,则可能需要在两个Program Files文件夹中查找才能找到它。

你也可以在Windows 10的任务管理器中查看。

在64位版本的Windows上,32位程序使用附加的“(32位)”文本进行标记,这表明您可以在C:\Program Files(X86)中找到它们。

相关文章