偶然发现一个按名称排序的文件夹内,文件顺序是混乱的,例如:
在一个文件夹内建立如下三个文件:
0F.txt
1A.txt
02.txt
按名称/升序排列, 将得到上述结果,0F在最前,02在最后。
百思不得其解,同样是0开头,为什么02会被排在1A之后?
Win7,Win8,及Windows server 2008均按上述规则排序。
查了一下,发现微软的网站上对此有说明:
原来对于有数字的文件名,windows会尝试找出数字部分,按数字大小进行排序。
上述三个文件名中,第一个提取出0(F被忽略),第二个提取出1,第三个提取出02(2),结果就是上面这样了……
多么愚蠢和无聊的想法啊!这竟然还是各版本Windows默认的排序方式。
可通过修改注册表的方式使Windows按旧版的字母顺序排序,方式是在
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Currentversion\Policies\Explorer]
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Currentversion\Policies\Explorer]
两个路径下新建一个名为NoStrCmpLogical的字段,数据类型是DWORD,令其值为1,然后重启电脑即可。
注册表文件内容如下:
--------------------------------------------------
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Currentversion\Policies\Explorer] "NoStrCmpLogical"=dword:00000001
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Currentversion\Policies\Explorer] "NoStrCmpLogical"=dword:00000001
--------------------------------------------------
复制虚线之间的部分(注意包含空行),另存为reg文件,即可直接导入注册表。