Windows 和 Linux 中区分大小写的文件扩展名

Windows 和 Linux 中区分大小写的文件扩展名

在 Linux 中,您可以将文件example.JPG放在example.jpg同一目录中。

在 Windows 中,扩展名区分大小写,但您不能将这两个文件放在同一目录中。为什么?

答案1

在 Windows 中,扩展名区分大小写,但您不能将这两个文件放在同一目录中。为什么?

如果驱动器格式化为 NTFS,则example.JPGexample.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 子系统使用不区分大小写的模式

来源NTFS 卷上的文件名区分大小写


但实际上我没能做到这一点

要实现同一目录中两个文件的大小写不同,您需要启用波西格玛子系统。

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 位应用程序则不然。

相关内容