当 Windows 在 NTFS 分区中遇到两个名称相同但大小写不同的文件时,默认的预期行为是什么?

当 Windows 在 NTFS 分区中遇到两个名称相同但大小写不同的文件时,默认的预期行为是什么?

从 Linux 向 NTFS 分区写入两个文件很容易,并且这两个文件都包含相同的字母,但大小写不同,例如 some_file.txt 和 Some_File.txt。Linux 会区分它们。

Windows 如何处理这些问题?

答案1

MS-DOS、WOW 和 Win32 个性将返回第一个匹配的文件。对于某些应用程序和 API,大小写不敏感强制执行(例如,MS-DOS 无法处理它)。POSIX 个性将要默认情况下区分并区分大小写(例如,如果您安装了 UNIX 工具)。本机 Windows NT 命令提示符将显示两者,但根据设置(ObCaseInsensitive)和工具使用的 API,仅访问它找到的第一个。

请参阅 Microsoft Technet 文章NTFS 卷上的文件名区分大小写(KB100625)并详细讨论了各个 NT 子系统中区分大小写的细微差别:了解 Windows 中的大小写敏感度:obcaseinsensitive、FILE_CASE_SENSITIVE_SEARCH

尤其是ObCaseInsensitive值控制整个 NT 对象管理器的大小写敏感性:

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitive
  • 当设置为 0 时,对象管理器以区分大小写的模式运行。
  • 当设置为 1 时,对象管理器以不区分大小写的模式运行。
  • 当未指定时,NT 5.1(Windows XP)及更高版本默认以不区分大小写的模式运行。
  • obcaseinsensitive 在 NT 5.0(Windows 2000)和 NT 的早期版本中没有意义,因为它们始终以区分大小写的模式运行。

赛格威应该此时获取底层/有效的区分大小写设置。

相关的超级用户问题如何在Windows 7中配置文件夹名称区分大小写?和 TechNet 文章配置文件和文件夹名称的大小写区分性如果您需要定期处理这种情况,请获取有关在 NT 中为文件和文件夹启用完全区分大小写的更多信息。

有关区分大小写工具/访问 NTFS/NFS 卷的其他资源:

答案2

事实并非如此。它认为大小写不同但名称完全相同的文件是同一个文件。

您可以通过创建一个全部小写的文件来测试这一点,然后创建另一个只有一个大写字母的文件,它会报错。

相关内容