Vista系统文件夹名缩短的原因
Vista对文件夹结构做了较大的改动,我的第一印象是它变得更象Unix的布局了。微软终于想通决定缩短文件夹名并去掉名字中间的空格,并使用了部分缩写词。
C:/Documents and Settings 改成 C:/Users
My Documents 改成 Documents
Application Data 改成 AppData/Roaming
Local Settings 改成 AppData/Local
All Users/Application Data 改成 C:/ProgramData
……
路径终于返朴归真了。只可惜Program Files还是没有改,微软坚持认为Programs和Program Files的含义不同。不过改名的原因竟然不是因为大家认为原来的名字不好,而是为了兼容性。
写过C程序的人应该还记得MAX_PATH常量,它的值是260。大量的Windows API,Shell,和应用程序都受这个值的限制。文件系统确实早就能支持很长的路径,但这个C的常量为了保持兼容性从来没有更改过。看过Documents and Settings文件夹的人都知道里面的文件夹名都是变态的长,而且文件夹嵌套层次很深,要超过260是轻而易举,如今越来越容易出现Path too long的错误。部分Unicode版的API确实提供了长路径的支持(加//?/前缀),但很少有人知道,因为这种支持更象是一个绕道的办法:不支持相对路径,不支持路径格式检查和正规化,最糟糕的是这样创建的文件不能被LoadLibrary等函数访问,甚至在Explorer里都不能访问。这样,给Documents and Settings改名也就成了最实际的手段。