Windows 字母文件排序:为什么空格有特殊处理?

Sam*_*mbo 5 sorting filenames windows-10

我注意到在 Windows 中,当您按字母顺序对文件进行排序时,当您的文件名以空格相互扩展时,会发生一件奇怪的事情。例如,假设您有两个文件,“Outline.pdf”和“Outline Revised.pdf”。由于后者有一个更长的名字来扩展前者,你会认为它会出现在后面。但是,当我按升序排序时,我得到:

按字母顺序排列.pdf

大纲修订版.pdf

大纲.pdf

Outline_Revised.pdf

大纲-修订版.pdf

排序

我添加了额外的文件来更详细地说明发生了什么。当“Outline”和“Revised”之间有空格时,文件排在“Outline.pdf”之前;但是,当此空格切换为下划线或连字符时,不再发生这种情况。

我的问题是:为什么 Windows 在排序时会这样对待空格?即,为什么空格优先于名称的末尾?

不太重要的是,有没有办法改变这一点?

编辑:为更多上下文添加了文件扩展名。

编辑 2:添加了更多文件以获得更清晰的示例

Tet*_*jin 8

操作系统实际上只能使用两种基本方法之一,ASCII 排序自然排序

ASCII 给出了这个

在此处输入图片说明
图片信用 - http://support.ecisolutions.com/doc-ddms/help/reportsmenu/ascii_sort_order_chart.htm

它采用每个单个元素并应用排序规则,没有任何其他解释。

自然排序尝试以更合乎逻辑的顺序处理诸如数字序列之类的 - 所以 9, 10, 11 而不是 10, 11, 9
它还可以处理更多的“库式”排序,将各种空白字符视为相等。

Windows 排序似乎使用 ASCII,其中空格在下划线之前,因此先排序。

你同样可以问,“为什么 Windows 将文件夹排序到顶部,文件在下面,而理性的头脑会自然排序?” - 有人选择了这种方式,没有其他原因。其他操作系统会自然排序......这会产生诸如 UUID 之类的问题, 应该是 ASCII 排序. 没有完美的解决方案.

我没有包括示例文件将具有不可见的“点三”扩展名。
这 。[dot] 将在空格后排序,ASCII。
这是在编辑问题以明确显示 .3 之前

从经验上看,现在 Mac 和 Win10 似乎都做了某种自然的排序——我确信 Windows 不习惯并且我不经常使用 Win,所以必须看看。
这就是他们对相同文件进行排序的方式……

在此处输入图片说明

他们似乎都同意下划线在破折号之前,这与严格的 ASCII 排序相矛盾,但不同意如何处理句点。

  • 简而言之,那个表不能完全是他们用来排序的。但是,您是正确的,我的错误没有在排序时考虑文件的扩展名。 (2认同)
  • 实际上,至少从 Windows 10(如果不是更早)开始,Windows 使用自然排序,因此 foo_9.txt 确实在 foo_10.txt 之前。或者 IMG (3).jpg 在 IMG (10).jpg 之前。 (2认同)