在 Linux 中,您可以将文件example.JPG
放在example.jpg
同一目录中。
在 Windows 中,扩展名区分大小写,但您不能将这两个文件放在同一目录中。为什么?
答案1
在 Windows 中,扩展名区分大小写,但您不能将这两个文件放在同一目录中。为什么?
如果驱动器格式化为 NTFS,则能有example.JPG
和example.jpg
。
然而,如果你尝试在 Win32 应用程序中打开这些文件,例如记事本,您只能访问其中一个文件,无论您在“打开文件”对话框中输入的文件名的大小写如何。
NTFS 卷上的文件名区分大小写
作为 POSIX 合规性要求的一部分,Windows NT 文件系统 (NTFS) 提供了区分大小写的文件和目录命名约定。尽管 NTFS 和 POSIX 子系统都能很好地处理大小写,但基于 Windows、基于 MS-DOS、基于 OS/2 和基于 Win32 的应用程序没有。
在 NTFS 中,您可以创建唯一的文件名,存储在同一目录中,这些文件名仅在大小写上有所不同。例如,以下文件名可以在 NTFS 卷上的一个目录中共存:
CASE.TXT case.txt case.TXT
然而,如果你尝试在 Win32 应用程序中打开这些文件,例如记事本,您只能访问其中一个文件,无论您在“打开文件”对话框中输入的文件名的大小写如何。
...
NTFS 支持两种略有不同的操作模式,可以由与 NTFS 交互的应用程序子系统选择。第一种模式完全区分大小写,要求应用程序提供的文件名与磁盘上存储的名称相匹配(包括大小写)(如果要选择磁盘上的文件)。第二种操作模式是保留大小写但不区分大小写。这意味着即使提供的名称与磁盘上存储的名称大小写不同,应用程序也可以选择磁盘上的文件。请注意,两种模式都保留了创建文件时使用的大小写。此处提到的行为差异仅适用于应用程序需要定位现有文件的情况。POSIX 利用完全区分大小写的模式,而 MS-DOS、WOW 和Win32 子系统使用不区分大小写的模式。
但实际上我没能做到这一点
要实现同一目录中两个文件的大小写不同,您需要启用波西格玛子系统。
POSIX 利用完全区分大小写模式,而 MS-DOS、WOW 和 Win32 子系统使用不区分大小写模式。
要启用 Posix,请参阅:
答案2
NTFS 区分大小写(并且这取决于您如何看待玻璃,这可能是好事也可能是坏事)。实际上,在早期实现不区分大小写是一项挑战,因为您必须不区分 az 和 AZ 的 ASCII 值。
尽管现在 Windows 操作系统使用的 NTFS(文件系统)可以支持区分大小写以符合 POSIX,但是却无法使 Windows(操作系统)区分大小写。
根据 Microsoft 的说法,您可以将 example.JPG 和 example.jpg 放在 NTFS 上的同一目录中(点击这里),但操作系统(所有版本的 Windows)不支持它,这使得文件系统变得毫无意义:)
作为 POSIX 合规性要求的一部分,Windows NT 文件系统(NTFS)提供区分大小写的文件和目录命名约定。尽管 NTFS 和 POSIX 子系统都能很好地处理大小写敏感问题,基于 Windows、MS-DOS、OS/2 和 Win32 的 16 位应用程序则不然。