例如,有a.txt。依然能够新建A.txt
NTFS is technically case sensitive, but Win32 is no
也就是是说 NTFS 格式是支持大小写的,但 Win 不支持。
这里的题主说:
已解决,将注册表
HKLMSYSTEMCurrentControlSetControlSession Managerkerneldword:ObCaseInsensitive
注册表项的值设为0
貌似可以解决,但下面有人说:
win10无效,改了之后唯一的区别就是,在已有a.txt的情况下,新建A.txt,系统提示是否重命名为a(2).txt,改之前,选择“是”,会将文件改名;改之后,选“是”,没用, 继续弹出对话框
又有人评论:
要用 posix 的 flag 使用 createfile 才行,explorer 上操作似乎是不行
总之,是一件蛋疼的事。
PS: 这是我弃用 Windows 的原因之一。
7 回答5.3k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答3.2k 阅读
1 回答3.6k 阅读
在文件系统中记录大小写,但是在用户层屏蔽掉大小写是为了方便用户体验。Mac也是类似的。这样导致Win32的注册表和程序内部有大量的大小写不同的字符串,最典型的是C:\Windows的大小写。所以你不可能把系统全部设置为大小写敏感的,那样的话很多程序都无法运行了。
ObCaseInSensitive只是影响系统内核,是在Win32层面之下的。设置了这个只有在POSIX子系统里是可以看出作用来。Windows Server和Windows 10里都有。而POSIX没有图形API,所以现在都是命令行程序或Bash下跑的程序。