设计上的失误而已。
最初这么设计是为了让这个目录显示起来更自然。有空格的原因在于英语母语国家阅读单词就是应该有空格的。
然而现在大家都知道了,对「显示友好」这个问题业界其实有更标准的做法,就是「将显示名称跟真实名称隔离」。目前的Windows用户目录,子目录,以及Linux跟MacOSX的设计都是这样做的。也成为标准做法。它们的真实名称永远是一个更方便键盘输入的简单名称,而显示名称可以很复杂,可以多国语言本地化翻译,当然也可以带空格。
但是在当时,微软没有想出这个设计。于是做出了 Program Files 这个坑。结果这个原本用于安装软件的目录,因为一部分软件拒绝安装到带空格的目录而被迫安装到其他地方,也就是说这个设计反而阻止了应用程序安装进去。
虽然一部分玩家会想办法为这个问题洗地,但微软已经用自己的行为向世人证明了这确实是一个失误:因为后来微软设计了很多目录,例如ProgramData, AppData 等目录,全都不带空格。微软自那一批之后,再也没有设计出带空格的系统目录,显然是微软已经意识到了这么做是错的。
而 Program Files 这个历史问题,已经积重难返,微软或许只是因为兼容性而不得不保留了它。
你们难道没有注意到ProgramData没有空格而Program Files有吗?
说到底是微软任性。(逃
所以总有弱智喜欢往APPdata里怼,怼了半天用户名是中文
我认为其中有一个原因就是迫使提问者这种程序提前发生问题从而避免出现更大的灾难性后果。
将软件默认安装位置弄一个带有空格的路径可以直接筛掉那些不能正确支持路径的安装程序和软件。让他们直接安装失败。
“Program Files”这个设计很好,强制要求软件正确处理路径,而不是只满足于“能用就好”。
我觉得微软是防止某些渣渣程序员,无视语法规定乱写,提取路径不加引号,程序放在空格路径就报错。
如果微软没有这一操作,我相信不支持空格路径甚至不支持中文路径的垃圾程序会多十倍!
既然文件名可以包含空格,你说是有空格不用傻,还是连基础语法都不懂瞎写导致不兼容空格的个别渣渣程序员傻?
我可以负责任的说,任何语言,按标准语法写,都不会出这种入门级的幼稚错误!