Windows中的“ Program Files(x86)”文件夹和“ Program Files”文件夹有什么区别?

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

32位和64位Windows

有关的:32位和64位Windows有什么区别?

最初,Windows仅作为32位操作系统提供。在32位版本的Windows(甚至今天仍然可用的Windows 10的32位版本)上,您只会看到“ C:\ Program Files”文件夹。

建议在“程序文件”文件夹中安装程序来存储其可执行文件,数据和其他文件。换句话说,程序会安装到“程序文件”文件夹中。

在Windows的64位版本上,64位应用程序安装到Program Files文件夹中。但是,Windows的64位版本也支持32位程序,并且Microsoft不想将32位和64位软件混在一起。因此,将32位程序安装到“ C:\ Program Files(x86)”文件夹中。

Windows使用称为WOW64的东西在64位版本的Windows上运行32位应用程序,WOW64表示“ Windows 64位上的Windows 32位”。

当您在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位的。

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

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

他们为什么要分开?

这是为旧的32位程序设计的兼容性功能。这些32位程序可能不知道Windows甚至存在64位版本,因此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”指的是这两种不同的体系结构。那是因为早期的计算机使用的是Intel 8086芯片。原始芯片为16位,但较新的版本变为32位。现在,“ x86”是指64位之前的体系结构-无论是16位还是32位。较新的64位体系结构被称为“ x64”。

这就是“程序文件(x86)”的含义。这是使用较旧的x86 CPU架构的程序的Program Files文件夹。不过请注意,Windows的64位版本无法运行16位代码。

这通常不重要

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

程序文件存储在程序文件还是程序文件(x86)中通常并不重要。 Windows会自动将程序安装到正确的文件夹中,因此您无需考虑它。程序无论出现在什么位置,都将显示在“开始”菜单中,并且可以正常运行。 32位和64位程序都应将您的数据存储在AppData和ProgramData之类的文件夹中,而不要存储在任何Program Files文件夹中。只是让您的程序自动决定要使用哪个Program Files文件夹。

如果您使用的是便携式应用,则该应用可以在系统上的任何文件夹中运行,因此您不必担心将其放置在何处。我们喜欢将便携式应用程序放置在Dropbox或其他类型的云存储文件夹中,以便在我们所有的PC上都可以使用它们。

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

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

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

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


$config[zx-auto] not found$config[zx-overlay] not found