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