Согласно документации Microsoftdir
(выделено мое)
/o [[:]SortOrder]
: Управляет порядком dir
сортировки и отображения имен каталогов и имен файлов. Если вы опустите /o
, dir
отображаются имена в том порядке, в котором они встречаются в каталоге . Если вы используете /o
без указания SortOrder
, dir
отображает имена каталогов, отсортированных в алфавитном порядке, а затем отображает имена файлов, отсортированных в алфавитном порядке. Двоеточие ( :
) не является обязательным.
Порядок, в котором файлы находятся в каталоге, зависит от файловой системы и того, как они хранят списки файлов в записи каталога.
- В FAT12 / 16/32 таблица размещения файлов представляет собой простой линейный список, а когда создается новый файл, он просто помещается в пустое место в списке. Следовательно, в зависимости от состояния создания и удаления, порядок списка будет меняться.
- В NTFS записи каталога хранятся в B-древовидной структуре, поэтому результатом будет почти отсортированный список
Подробнее о Раймонде Чене В каком порядке DIR
команда упорядочивает файлы, если не указан порядок сортировки?
Если вы не укажете порядок сортировки, DIR
команда выводит список файлов в порядке их возврата FindFirstFile
функцией .
Хм, хорошо, но это просто поднимает вопрос на следующий уровень: какой порядок FindFirstFile
возвращает файлы?
Порядок, в котором FindFirstFile
возвращаются файлы, не указан. Драйвер файловой системы должен возвращать файлы в любом порядке, который он сочтет наиболее удобным.
Вы можете вручную отсортировать файлы, переместив их в другой каталог в нужном вам порядке.
Если носитель данных представляет собой флэш-накопитель USB в формате FAT, то файлы будут перечислены в сложном порядке на основе порядка, в котором файлы создаются и удаляются, а также длины их имен. Но простой выход - просто удалить все файлы из каталога, а затем переместить файлы в каталог в том порядке, в котором вы хотите их перечислить. Таким образом, первый доступный слот находится в конце каталога, поэтому запись в файле добавляется.
Однако для этой цели создано множество инструментов.