您提到了原因:区分 32 位程序文件和 64 位程序文件。当您在 64 位 Windows 安装上运行 32 位程序时,Windows 会将来自该程序的文件夹请求重定向到 %ProgramFiles% [C:\Program Files in the English language version] 到 x86 替代项 [C:\Program Files ( x86)]。由于这种静默重定向,64 位和 32 位程序可以共存而不会相互干扰。(例如,64 位 Windows 包括 64 位和 32 位版本的 Internet Explorer。)Windows 还对其自己的文件和注册表项执行类似的重定向。
将 32 位应用程序与 64 位应用程序分开不仅是为了人类可读性,还有许多编程原因。考虑“通用文件”文件夹。如果您有一个 32 位应用程序和 64 位应用程序使用 Common Files 文件夹来存放同名文件,那么您将先安装哪个应用程序。Windows 将这些文件夹呈现给应用程序本身的方式也存在差异,尽管我对它们不够熟悉,无法很好地解释它们。
最后,这是转向通用原生 64 位应用程序的众多步骤中的第一步。以不同的方式呈现文件夹使开发人员和用户都可以看到区别,而 32 位“程序文件 (x86)”是个奇怪的人。
正如您在问题中所写,这些文件夹是 32 位和 64 位应用程序的不同默认设置目录。
一个有趣的混合设置是 SQL Server 2005:如果您安装 64 位版本,主要 SQL 引擎文件将被复制到 Program Files 文件夹下,仅 32 位的工具将安装在“Program Files (x86) "
您提到了原因:区分 32 位程序文件和 64 位程序文件。当您在 64 位 Windows 安装上运行 32 位程序时,Windows 会将来自该程序的文件夹请求重定向到 %ProgramFiles% [C:\Program Files in the English language version] 到 x86 替代项 [C:\Program Files ( x86)]。由于这种静默重定向,64 位和 32 位程序可以共存而不会相互干扰。(例如,64 位 Windows 包括 64 位和 32 位版本的 Internet Explorer。)Windows 还对其自己的文件和注册表项执行类似的重定向。