![64 位 Windows 中的 \Program Files 与 \Program Files (x86)](https://linux22.com/image/482510/64%20%E4%BD%8D%20Windows%20%E4%B8%AD%E7%9A%84%20%5CProgram%20Files%20%E4%B8%8E%20%5CProgram%20Files%20(x86).png)
除了可以轻松区分 32 位图像和 64 位图像之外,还有哪些原因需要使用单独的文件夹?
答案1
这不仅仅是为了便于阅读,将 32 位应用程序与 64 位应用程序分开还有许多编程原因。考虑“Common Files”文件夹。如果您有一个 32 位应用程序和一个 64 位应用程序,它们使用 Common Files 文件夹来存放同名文件,那么您将使用先安装的那个。Windows 向应用程序本身呈现这些文件夹的方式也存在差异,尽管我对它们不够熟悉,无法很好地解释它们。
最后,这是向通用原生 64 位应用程序迈进的众多步骤中的第一步。以不同方式呈现文件夹可以让开发人员和用户都能看到区别,而 32 位“Program Files (x86)”则显得格格不入。
答案2
正如您在问题中所写,这些文件夹是 32 位和 64 位应用程序的区别默认安装目录。
一个有趣的混合设置是 SQL Server 2005:如果你安装 64 位版本,主 SQL 引擎文件将被复制到 Program Files 文件夹下,32 位专用工具将安装在“Program Files (x86)”中
答案3
您提到了原因:区分 32 位程序文件和 64 位程序文件。当您在 64 位 Windows 安装上运行 32 位程序时,Windows 会将该程序对 %ProgramFiles% [英文版中的 C:\Program Files] 的文件夹请求重定向到 x86 替代目录 [C:\Program Files (x86)]。由于这种静默重定向,64 位和 32 位程序可以共存而不会互相干扰。(例如,64 位 Windows 包含 64 位和 32 位版本的 Internet Explorer。)Windows 还对其自己的文件和注册表项执行类似的重定向。