当在 linux 和 windows C:\folder1\folder2 中说 \folder1\folder2\ 时,C 驱动器是否被视为 Windows 中的根文件夹。
10 回答
在 Windows 中,它与当前工作目录所在的驱动器有关。如果您的当前目录位于 C 驱动器中,则 C:\ 将是根目录。如果当前目录是 D 驱动器,则 D:\ 将是根目录。没有绝对的根。
如果您正在运行 Windows CE,则 \ 是根目录。这类似于 Unix 的 / 根目录。这是唯一一种可以简单回答问题的 Windows。
如果您运行的是 Windows NT/2000/XP/2003,那么最接近的等价物是包含文件 NTLDR、NTDETECT.COM、BOOT.INI 和 BOOTFONT.BIN 的分区。BIOS 和 MBR 通过查找要启动的驱动器、扫描 MBR 并查找活动分区来找到此分区。Microsoft 将此称为系统分区。我不完全确定程序如何找到这是哪个分区。无论如何,当您找到这是哪个驱动器号时,比如说字母 L,那么您可以说 L:\ 是根目录。99% 的时间这将是驱动器号 C:。
此外,如果您运行的是 Windows NT/2000/XP/2003,那么您还有一个包含 Windows 系统文件的分区,例如目录 \Windows 或其他。Microsoft 将此称为引导分区。正如其他人所说,您可以从符号 %SystemDrive% 获取驱动器号。如果这是驱动器号 Q,那么您可以说 Q:\ 是系统驱动器的根目录。
如果您运行的是 Vista,那么事情会更加复杂。如果您通过引导 DVD 安装,那么引导分区(包含系统文件)是 C:,而您的系统分区(包含引导文件)是 D:,除非它们是同一个分区,然后分区是 C:。但是,如果您通过已经运行 Windows、插入 DVD 并在该 Windows 安装下启动安装程序来安装,那么驱动器号几乎可以是任何东西。
在 Windows 95/98/ME 中,BIOS 和 MBR 会在活动分区中查找文件 IO.SYS、COMMAND.COM 和其他一些文件。这通常会得到驱动器号 C:,因此根分区是 C:。与往常一样,Windows 系统文件可以安装在目录 \Windows 或任何分区上的其他目录中。
有些人谈论台式机。当然,每个登录用户都有一个桌面。这有点像每个 Unix 用户的主目录。它肯定不是根目录。
附录:在倒数第二段中,关于 Windows 95/98/ME,我输入了“所以根分区将是 C:”。也就是说,字母 C、冒号、反斜杠,然后是句末句点(不是目录名称的一部分)。查看页面时,反斜杠未显示。但是,在编辑此答案以添加此附录时,反斜杠与我输入的内容完全相同。
在 Windows 中,您没有特殊的根节点,而是在文件系统上有一些以环境变量形式存在的入口点:
%应用程序数据%
%程序文件%
%通用程序文件%
%系统驱动器%
%系统根%
即使根的概念在 Windows 中脱离上下文,根的更好等价物可能是 %SystemDrive%。
正如其他人所提到的,Windows 与 UNIX 不同,在 UNIX 中,文件系统为所有设备都有一个逻辑“路径”空间(每个设备都安装到这个空间,例如 /dev/floppy)。
在 Windows 中,每个设备(无论是硬盘分区、CD/DVD ROM 还是闪存驱动器)都有自己的逻辑路径空间,根植于其逻辑驱动器号的“\”目录。
虽然 Windows 资源管理器在组织“我的电脑”下的所有驱动器方面做得还不错,但这是纯粹的 UI 糖,没有办法通过相对路径从一个驱动器号获取到另一个驱动器号。
然而,每个单独的驱动器文件系统的行为与 UNIX 相似,并且确实有一个名为“\”的根。
Windows 不共享根文件夹的 UNIX 概念。相反,每个带有文件存储的分区或设备都有自己的根文件夹。鉴于 C: 分区/驱动器(几乎)始终是操作系统的主目录,但是,您可能会认为它的根文件夹与 Windows 相同。
在 Windows 中,根文件夹将是桌面。Desktop->Computer->C:\folder1\folder2 与 IShellFolder 接口。
Unix 使用文件系统代表系统的几乎所有部分,从上到下,这意味着根文件系统文件夹在逻辑上也代表“系统根”。但在 Windows 中,文件系统与系统并没有如此紧密的联系,因此在文件系统中没有“系统根”的概念。休更详细地解释了它。
是的,“\”是当前驱动器的根文件夹。例如 DOS 命令 "cd \" 将当前目录更改为根文件夹,或者 "cd \folder1\folder2" 转到 "c:\folder1\folder2"
事实上,windows 有一个根文件夹。该文件夹虽然不可见,但被称为“i386”