tl; dr Я не могу воспроизвести порядок сортировки, используемый dir
в Windows 10, ни в проводнике, ни в Total Commander. Я попытался изменить порядок сортировки на основе множества разных столбцов, но все равно ничего. Таким образом, мне интересно, как файлы, перечисленные dir
команды упорядочены по умолчанию? А как его поменять?
Я заметил, что мой MP3-плеер воспроизводит музыку в «странном» порядке. Чтобы исследовать это, у меня есть:
- смонтированная SD-карта под моей Windows 10,
- пробег
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.