Ordem de arquivo padrão do comando "dir" no console do Windows

1

Estou apenas imaginando como o Windows determina a ordenação de arquivos ao executar um comando dir (sem nenhum argumento) em um prompt de comando.

Eu sei que você pode especificar explicitamente um pedido, mas apenas curioso sobre como o pedido funciona quando nenhum parâmetro é usado.

A razão é que eu tenho um aparelho de som doméstico que pode ler músicas de um drive USB, e parece reproduzir músicas na mesma ordem que quando eu executo o comando dir em um prompt de comando do Windows XP. Se eu conseguir descobrir como funciona a ordenação em um comando baunilha dir , poderei controlar a ordem de reprodução das músicas no estéreo alterando certos atributos dos arquivos

    
por Moe Sisko 30.09.2012 / 15:44

2 respostas

3
O comando

dir (sem argumentos) sempre mostra arquivos / diretórios não-classificados, em outras palavras - na mesma ordem em que os arquivos / diretórios estão localizados no disco. O sistema de arquivos NTFS "classifica" arquivos / dirs internamente (simplificando).

Pense bem, você pode copiar arquivos um por um para obter a classificação preferida em seu player.

    
por 30.09.2012 / 18:56
2

De acordo com Documentação dir da Microsoft (ênfase minha)

/o [[:]SortOrder]: Controls the order in which dir sorts and displays directory names and file names. If you omit /o, dir displays the names in the order in which they occur in the directory. If you use /o without specifying SortOrder, dir displays the names of the directories, sorted in alphabetic order, and then displays the names of files, sorted in alphabetic order. The colon (:) is optional.

A ordem em que os arquivos ocorrem em um diretório depende do sistema de arquivos e de como eles armazenam listas de arquivos em uma entrada de diretório.

  • No FAT12 / 16/32, a tabela de alocação de arquivos é apenas uma lista linear simples e, quando um novo arquivo é criado, ele é simplesmente colocado em um espaço vazio na lista. Portanto, dependendo do estado de criação e exclusão, a ordem da lista varia.
  • Nas entradas de diretório NTFS são armazenadas em uma estrutura de árvore B, portanto, o resultado será uma lista quase classificada

Mais sobre qual ordem o comando DIR organiza os arquivos se nenhuma ordem de classificação está especificado?

If you don't specify a sort order, then the DIR command lists the files in the order that the files are returned by the Find­First­File function.

Um, okay, but that just pushes the question to the next level: What order does Find­First­File return files?

The order in which Find­First­File returns files in unspecified. It is left to the file system driver to return the files in whatever order it finds most convenient.

Você pode classificar manualmente os arquivos, movendo-os para outro diretório na ordem desejada

If the storage medium is a FAT-formatted USB thumb drive, then the files will be enumerated in a complex order based on the order in which files are created and deleted and the lengths of their names. But the easy way out is simply to remove all the files from a directory then move file files into the directory in the order you want them enumerated. That way, the first available slot is the one at the end of the directory, so the file entry gets appended.

No entanto, existem muitas ferramentas criadas para esse fim

por 06.04.2017 / 07:23