Порядок файлов по умолчанию для команды "dir" в консоли Windows

1146
Moe Sisko

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

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

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

1
Какая версия Windows? Какая файловая система на вашем USB-накопителе. Мои списки `dir` в алфавитном порядке. David Heffernan 12 лет назад 1
@ Дэвид: То же самое для меня в моем Win7Home abatishchev 12 лет назад 0
@DavidHeffernan: Windows XP. USB отформатирован в FAT. Moe Sisko 12 лет назад 0

2 ответа на вопрос

3
Maximus

dir (without arguments) command always shows files/dirs unsorted, in other words - in same order, as files/dirs are located on disk. NTFS file system "sorts" files/dirs internally (simplifying).

Thought, you may copy files one-by-one to achieve preferred sorting on your player.

2
phuclv

Согласно документации Microsoftdir (выделено мое)

/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, то файлы будут перечислены в сложном порядке на основе порядка, в котором файлы создаются и удаляются, а также длины их имен. Но простой выход - просто удалить все файлы из каталога, а затем переместить файлы в каталог в том порядке, в котором вы хотите их перечислить. Таким образом, первый доступный слот находится в конце каталога, поэтому запись в файле добавляется.

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