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