1

Просто интересно, как Windows определяет порядок файлов при запуске команды dir (без каких-либо аргументов) в командной строке.

Я знаю, что вы можете явно указать порядок, но просто любопытно, как порядок работает, когда параметры не используются.

Причина в том, что у меня есть домашняя стереосистема, которая может читать песни с USB-накопителя, и кажется, что она воспроизводит песни в том же порядке, что и при запуске команды dir в командной строке Windows XP. Если я смогу выяснить, как упорядочение работает в команде vanilla dir , я мог бы контролировать порядок воспроизведения песен на стерео, изменяя определенные атрибуты файлов.

2 ответа2

3

Команда dir (без аргументов) всегда показывает несортированные файлы / каталоги, другими словами - в том же порядке, как файлы / каталоги находятся на диске. Файловая система NTFS "сортирует" файлы / каталоги внутри (упрощенно).

Думаю, вы можете копировать файлы один за другим, чтобы добиться предпочтительной сортировки на вашем плеере.

2

Согласно документации Microsoft, dir (курсив мой)

/o [[:]SortOrder]: Управляет порядком, в котором dir сортирует и отображает имена каталогов и имен файлов. Если вы опустите /o , dir отобразит имена в том порядке, в котором они встречаются в каталоге. Если вы используете /o без указания SortOrder , dir отображает имена каталогов, отсортированных в алфавитном порядке, а затем отображает имена файлов, отсортированных в алфавитном порядке. Двоеточие : является необязательным.

Порядок, в котором файлы находятся в каталоге, зависит от файловой системы и того, как они хранят списки файлов в записи каталога.

  • В FAT12/16/32 таблица размещения файлов представляет собой простой линейный список, а когда создается новый файл, он просто помещается в пустое место в списке. Следовательно, в зависимости от состояния создания и удаления, порядок списка будет меняться.
  • В NTFS записи каталога хранятся в виде структуры B-дерева, поэтому результатом будет почти отсортированный список

Подробнее о Раймонде Чене В каком порядке команда DIR упорядочивает файлы, если не указан порядок сортировки?

Если вы не укажете порядок сортировки, команда DIR перечислит файлы в том порядке, в котором они возвращаются функцией Find­First­File.

Хм, хорошо, но это просто поднимает вопрос на следующий уровень: в каком порядке Find­First­File возвращает файлы?

Порядок, в котором Find­First­File возвращает файлы в неопределенном виде. Драйвер файловой системы должен возвращать файлы в любом порядке, который он сочтет наиболее удобным.

Вы можете вручную отсортировать файлы, переместив их в другой каталог в нужном вам порядке.

Если носитель данных представляет собой флэш-накопитель USB в формате FAT, то файлы будут перечислены в сложном порядке на основе порядка, в котором файлы создаются и удаляются, а также длины их имен. Но простой выход - просто удалить все файлы из каталога, а затем переместить файлы в каталог в том порядке, в котором вы хотите их перечислить. Таким образом, первый доступный слот находится в конце каталога, поэтому запись в файле добавляется.

Однако для этой цели создано множество инструментов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .