为什么 Windows 系统 Program Files 这个经常用来装软件的目录,名称中有个空格?

在终端中通过流读取路径时,不按语法瞎写会把这种路径读成两段。如果程序员偷懒不加引号,很容易出事。
关注者
562
被浏览
1,125,010

50 个回答

设计上的失误而已。

最初这么设计是为了让这个目录显示起来更自然。有空格的原因在于英语母语国家阅读单词就是应该有空格的。

然而现在大家都知道了,对「显示友好」这个问题业界其实有更标准的做法,就是「 将显示名称跟真实名称隔离 」。目前的Windows用户目录,子目录,以及Linux跟MacOSX的设计都是这样做的。也成为标准做法。它们的真实名称永远是一个更方便键盘输入的简单名称,而显示名称可以很复杂,可以 多国语言本地化翻译 ,当然也可以带空格。

但是在当时,微软没有想出这个设计。于是做出了 Program Files 这个坑。结果这个原本用于安装软件的目录,因为一部分软件拒绝安装到带空格的目录而被迫安装到其他地方,也就是说这个设计反而阻止了应用程序安装进去。

虽然一部分玩家会想办法为这个问题洗地,但微软已经用自己的行为向世人证明了这确实是一个失误:因为后来微软设计了很多目录,例如ProgramData, AppData 等目录,全都不带空格。 微软自那一批之后,再也没有设计出带空格的系统目录,显然是微软已经意识到了这么做是错的

而 Program Files 这个历史问题,已经积重难返,微软或许只是因为兼容性而不得不保留了它。

你们难道没有注意到ProgramData没有空格而Program Files有吗?

说到底是微软任性。(逃