Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
目录中的windows文件排序_Windows_Sorting - Fatal编程技术网

目录中的windows文件排序

目录中的windows文件排序,windows,sorting,Windows,Sorting,我正在编写一些有关在windows目录(windows 7)中对文件进行排序的函数。 测试时我发现,如果您有两个文件: a3s.txt a-s.txt Windows不会将“a-s.txt”放在第一位,尽管“-”表示ASCII代码45,“3”表示ASCII代码51 这只发生在windows资源管理器中,而不会发生在windows命令shell中 为什么会这样 提前多谢 编辑: 这不是重复的问题。 在其他帖子中,他们讨论了文件名包含数字的情况。但在这里,当您有“a_.txt”和“a-s.txt”时

我正在编写一些有关在windows目录(windows 7)中对文件进行排序的函数。
测试时我发现,如果您有两个文件:

a3s.txt
a-s.txt

Windows不会将“a-s.txt”放在第一位,尽管“-”表示ASCII代码45,“3”表示ASCII代码51

这只发生在windows资源管理器中,而不会发生在windows命令shell中

为什么会这样

提前多谢

编辑:
这不是重复的问题。

在其他帖子中,他们讨论了文件名包含数字的情况。但在这里,当您有“a_.txt”和“a-s.txt”时,问题也会发生。此外,这个问题不仅发生在Windows 7上,而且也发生在Windows Server 2003上。

这是出于设计考虑。MSFT在Windows资源管理器中使用自定义排序算法,他们认为这对大多数用户来说更直观。有关更多信息和简要历史记录,请参阅。本文描述了自定义排序始于WindowsXP,它是Server2003的前身

“这不是重复的问题”


症状不同,但根本原因相同。Windows资源管理器不使用字典排序。

它可能是一种自定义算法,但不是资源管理器的专有或唯一算法。Explorer调用该函数,应用程序也可以调用。
CompareStringEx
函数也有类似的标志,该函数具有更可预测的行为,可以跨多个版本依赖。答案相同。Explorer使用非词典排序,这被认为对用户更直观。这不仅影响数字,也影响符号。我不清楚你的编程问题是什么。这看起来像是一个关于使用Windows资源管理器的问题,这在这里是离题的。