![奇怪的目录排序顺序](https://linux22.com/image/1346935/%E5%A5%87%E6%80%AA%E7%9A%84%E7%9B%AE%E5%BD%95%E6%8E%92%E5%BA%8F%E9%A1%BA%E5%BA%8F.png)
我有一个文件夹,其中创建了几个子文件夹,如下所示:
v6.2
v6.25
v6.256
v6.3
当我在 Windows 资源管理器中查看内容时,v6.3
即使我单击该Name
列按升序排序,项目也会以奇怪的顺序显示(应该是最后一个):
dir
在命令提示符或Powershell 中使用ls
,我得到了预期的顺序:
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 1/15/2013 11:01 AM v6.2
d---- 1/15/2013 11:01 AM v6.25
d---- 1/15/2013 11:01 AM v6.256
d---- 1/15/2013 11:01 AM v6.3
按时间顺序排序是不可能的,因为我可能会v6.25
在之后添加v6.3
,但仍然希望看到它们按名称排序。
有谁知道如何正确对 Windows 资源管理器中的项目进行排序?
答案1
正如所提到的此 Microsoft 知识库文章:
Windows Vista、Windows XP 和 Windows Server 2003 对名称包含数字的文件和文件夹使用的排序顺序与 Windows 2000 使用的排序顺序不同。
默认情况下,较新的排序顺序将文件和文件夹名称中的字符串视为数字内容,而不是文本。文件夹和文件名称中的数字根据其数值排序。
在注册表(Start / Run / regedit
)中,您可以添加无StrCmpLogicalDWORD 值
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Currentversion\Policies\Explorer
并将其设置为1恢复为 Windows 2000 非数字排序样式,或使能够这关闭 Windows 资源管理器中的数字排序设置下
Computer Configuration / Administrative Templates / Windows Components / Windows Explorer
在本地组策略编辑器中(通过Start / Run / gpedit.msc
,请参阅这里更多内容):
答案2
用前面的 0 填充是解决此类问题的常用方法。
有关 Windows 7 排序的更多信息,请访问http://answers.microsoft.com/en-us/windows/forum/windows_7-files/windows-7-file-name-sort-order/b6bb0847-4b98-4f6b-85da-fe6b65516153包括:
“问题在于,排序没有通用标准,对某些人来说在某种情况下有效的方法可能对其他人无效。最近还有一位发帖人希望使用“ASCII 排序顺序”——这对英语来说还算合理,但对其他语言呢?ASCII 将大写字母排在小写字母之前,并将一些符号排在数字之前,一些符号排在数字之后,一些符号排在 Z 和 a 之间,一些符号排在 z 之后。这位发帖人真的希望包含符号的文件名按此排序吗?(999).txt、[001].txt、{555}.txt?Charlie.txt、able.txt、baker.txt?这是一个长期存在的问题,甚至需要 MS 根据字母表使用传统排序顺序还是现代排序顺序为卡斯蒂利亚西班牙语分配两种不同的语言代码。
您的两个示例包含空格。这些空格应该放在排序顺序的哪个位置?“nothing”是否应该始终排在“something”之前,反之亦然?如果您将示例中的空格替换为下划线字符等,您将再次得到不同的结果。
MS Excel 有明确的排序顺序,任何使用该程序的人都会认出,这是有原因的。它与许多其他程序不同,在英语中看起来像这样(数字是 ASCII 码点):
我想说的是您可能需要调整文件名以适应 W7 排序顺序,而不是相反。我确信他们花了很多心思来确定最有可能让大多数用户满意的顺序(否则他们为什么要在 Win2K 和 XP 之间更改系统?)。我更喜欢 Win2K 系统的主要原因是它按数字顺序对十六进制数进行排序;而 XP 系统则不是这样。
除此之外,在很多情况下,文件名中包含空格会造成麻烦,各种软件会将这些空格更改为 %20 或 _ 或其他内容。”(我的加粗)
并参考gpedit.msc
“此方法不适用于 Windows 7”。