为什么有人连Program Files是Windows 95率先引入的都不愿意承认(详见描述)?
虽然可以强行将Windows盘符指定为非C,并且这一功能在Windows95就可用,但是几乎一定会导致兼容性问题。
(实际上早期Windows连Windows文件夹名字都能指定,比如你可以指定系统被安装在F:/UNIX)
原因很简单,并不是每个程序员都会使用%ProgramFiles%来表示系统默认安装路径,即系统盘的Program Files。
总会有那么一堆人把默认安装目录写死为“C:/Program Files”,而不是用环境变量,如果没有C盘可能会导致异常……
这是其一
其二,多系统,如果都是Windows的话
在全默认安装下,当前启动的系统的系统盘就是C盘。
我们举个例子,硬盘上有1,2,3,4四个分区,分别在1和4装了两个系统
如果都是默认设置安装的,那么,启动硬盘1上的系统是,4个分区的盘符分别是c,d,e和f;启动硬盘4上的时,分别是f,d,e,c(也可能是d,e,f,c等等,总之当前系统盘首先被映射为C)
这种盘符错乱的事情是早年间98/XP双系统时经常碰到的,现在也能在网上找到不少遗迹。而且即使到win11时代,也一样有问题,比如:
https://learn.microsoft.com/zh-cn/answers/questions/3796583/question-3796583究其原因,windows盘符并不表示硬盘分区的绝对地址,它只是一个映射上的符号,在同一个设备上的不同系统之间并不统一。
所以,操作系统的启动并不是读取盘符,而是按照硬盘编号/分区编号的方式找启动文件(xp时代存在boot.ini明文保存)
编辑于 2026-07-31 · 著作权归作者所有