总结 我无法复制 Windows 10 中命令使用的排序顺序dir
,无论是在文件资源管理器中还是在 Total Commander 中。我尝试根据许多不同的列更改排序顺序,但仍然没有结果。因此,我想知道dir
默认情况下命令列出的文件是如何排序的?我该如何更改它?
我注意到我的 MP3 播放器播放音乐的顺序有点“奇怪”。为了调查这个问题,我做了以下事情:
- 在我的 Windows 10 下安装 SD 卡,
cmd
以管理员身份运行,- 导航至 SD 卡根目录,
- 已执行的
dir
命令。
我收到以下输出:
Volume in drive D has no label.
Volume Serial Number is 36BA-963E
Directory of D:\
05.06.2018 23:00 159ÿ280ÿ594 02. Stream.mp3
15.10.2019 20:18 144ÿ000ÿ738 05. Campfire.mp3
11.02.2020 23:32 134ÿ040ÿ469 07. Piano Soft.mp3
11.02.2020 17:32 153ÿ195ÿ986 10. Flutes.mp3
16.09.2019 05:09 171ÿ600ÿ882 11. Tibetan.mp3
11.02.2020 08:13 115ÿ326ÿ973 13. Train.mp3
20.10.2018 22:16 159ÿ280ÿ281 01. Birds.mp3
05.06.2018 23:00 161ÿ086ÿ282 03. Sea.mp3
05.06.2018 23:00 161ÿ247ÿ510 04. Rain.mp3
05.06.2018 23:00 159ÿ280ÿ596 06. Cave.mp3
11.12.2019 17:57 131ÿ792ÿ464 12. Meditation.mp3
10.02.2020 19:42 142ÿ827ÿ986 08. Piano Water.mp3
10.02.2020 21:57 159ÿ780ÿ933 09. Jazz.mp3
14 File(s) 1ÿ952ÿ741ÿ728 bytes
0 Dir(s) 5ÿ819ÿ006ÿ976 bytes free
如您所见 - 文件未按文件名排序。通过更改多列的排序顺序,我无法复制上述排序顺序。我尝试过:
- 文件名,
- 文件扩展名,
- 文件大小,
- 创建日期,
- 修改日期和
- 上次保存日期。
一切都是徒劳的。
有人可以指导我,命令使用的默认排序顺序是什么dir
?
更重要的是——如何改变它(因为我的 MP3 播放器播放文件的顺序与此完全相同,都是“奇怪”的)?我说的“改变它”是指,我应该修改每个文件的哪个属性(例如可能是某个日期),以便dir
命令报告的排序顺序尽可能接近字母顺序?
答案1
这是文件系统顺序 – 在文件管理器中它被称为“没有任何排序顺序”。
对于 FAT 文件系统,目录存储作为简单列表一系列文件条目。每当删除文件时,其插槽就会被标记为空。每当添加新文件时,它就会占用第一个空闲的插槽,该插槽可能位于末尾或中间某处。(这略微简化了 - 例如,实际上,“长”文件名会占用多个插槽 - 但它应该能说明问题。)
(这与按创建日期排序不完全相同,因为它是根据文件放置在特定文件夹中的时间确定的,而不是根据文件的整体创建时间确定的。)
这意味着对文件进行排序的一种方法是创建一个新目录,然后将文件移动到其中逐个按照您想要的顺序进行。许多玩家的工作方式与您的相同,因此已经存在实现此目的的工具:
- 如何重新排序 FAT32 文件系统的文件?
- http://www.anerty.net/software/file/DriveSort/?lang=en
- http://manpages.ubuntu.com/manpages/xenial/man1/fatsort.1.html
- https://softwarerecs.stackexchange.com/questions/19575/sort-folders-on-fat32-drive-from-a-windows-command-line
- https://jansipke.nl/sorting-files-alphabetically-on-fat-filesystems-usb-disks-sd-cards/
同时,对于 NTFS 文件系统,目录条目存储在 B+ 树中,因此它们总是处于明确定义的顺序 - 如果我没记错的话,NTFS 根据文件名的 UTF-16 格式对条目进行排序。