Windows NTFS 和区分大小写

Windows NTFS and case sensitivity

根据 Wikipedia NTFS 允许两个大小写不同的相似名称(如 Readme.txt 与 readme.txt)并且它仅被 windows 文件阻止 API.

Current Windows file systems, like NTFS, are case-sensitive; that is a readme.txt and a Readme.txt can exist in the same directory. However, the API for file access in Windows applications is case-insensitive, which makes filenames case-insensitive from the application's point of view. Therefore, applications only have access to one of the files whose filenames only differ in case, and some commands may fail if the filename provided is ambiguous

来自 Linux 我问自己这两个文件都存在并且一个人只能访问其中一个文件的可能性有多大,这使它成为一个理想的安全问题。 "Windows API" 是什么意思。还有另一种方法来访问那些重复的文件吗?是否可以直接使用磁盘驱动程序(格式化驱动程序)访问文件系统?

NTFS 是区分大小写的文件系统,将名称相同但大小写不同的文件视为不同的文件。

Windows API 提出了 NTFS 的抽象,使它看起来像一个保留大小写的文件系统,它通过 CreateFile API 几乎所有文件创建和打开请求都通过。

也就是说,文件打开或创建的区分大小写由传递给 CreateFile 的 FILE_FLAG_POSIX_SEMANTICS 标志调解。

正如克里斯贝克所说:

NTFS is a case sensitive file system and treats files with the same name, but different case, as different files.

幸运的是,如果您现在想要大写和小写文件,新的 Windows 10 开发人员更新允许您在某些文件夹中启用该功能,以用于开发目的。我只是警告您,您不应该依赖该功能,因为旧的 windows 版本不支持它,而且我不知道会发生什么。在此处查看操作方法:https://www.howtogeek.com/354220/how-to-enable-case-sensitive-folders-on-windows-10/