-->

segunda-feira, 29 de dezembro de 2008

Ordenando os arquivos na USB do DivX player.

Se você usa muito um DivX player com USB (ou MP3 player com USB, como o dos carros), já deve ter percebido que às vezes a ordem dos arquivos não parece ter lógica nenhuma. Às vezes estão em ordem alfabética, mas as vezes começam em ordem alfabética e depois bagunça. Outras vezes não há ordem alguma identificável. Isso geralmente é mais fácil de identificar na ordem das pastas.

Na verdade, aparelhos sem muita memória e recursos como esses seguem uma ordem invisível para nós: a ordem em que os arquivos foram gravados na mídia.

Em mídia CD/DVD isso não é problema, porque durante o processo de masterização de uma gravação em ISO9660 todos os arquivos são colocados em ordem alfabética (com regras diferentes das regras do Windows), mas em uma mídia de gravação aleatória como um pendrive não existe um processo prévio de ordenação.

Embora nós sejamos levados a crer, pelo hábito com computadores, que colocar arquivos em ordem alfabética é "a coisa mais simples do mundo", isso não é tão simples em dispositivos microcontrolados. Ordenar algo é tarefa bem difícil quando você está limitado em recursos. É muito mais fácil percorrer uma lista qualquer pela ordem em que os items aparecem do que criar uma nova lista seguindo um critério qualquer, que ainda por cima tem que apontar para os items na primeira. Então o projetista geralmente decide percorrer a lista dos arquivos existentes em um diretório simplesmente seguindo a ordem em que eles aparecem no sistema de arquivos (no caso, na FAT). E essa ordem é a ordem em que os arquivos foram gravados.

Sabendo disso, posso apontar duas maneiras de fazer com que os arquivos apareçam exatamente na ordem que você deseja no seu player:

  • Gravando um a um na ordem que você deseja que eles apareçam;
  • Usando o programa Foldersort;

Foldersort foi uma dica dada por jmaraujo no fórum no início deste mês, mas só agora pude testar. O programa realmente funciona, tendo a "limitação" de só poder ordenar por ordem alfabética (que só é limitação quando você sabe que é possível determinar a ordem com precisão, gravando um a um). A julgar pela rapidez com que funciona ele mexe diretamente na FAT para reorganizar os arquivos. Eu estava preocupado com o fato de que ele poderia fazer isso recopiando todos os arquivos para outra pasta na ordem desejada e depois apagando a pasta antiga, mas felizmente não é esse seu modus operandi.

12 comentários:

  1. Não é necessariamente a ordem em que os arquivos foram gravados, pois leva em conta os arquivos apagados também. Quando você salva os arquivos A.avi, B.avi e C.avi, e depois apaga o B.avi, vai ficar um 'slot' vazio naquela posição do diretório, e o próximo arquivo a ser salvo (D.avi) terá seu nome e setor inicial salvos ali, ficando na "ordem": A.vi, D.avi e C.avi
    Para ver qual a ordem "natural" dos arquivos em uma pasta, é "fácil": é só abrir um console, ir para a pasta em questão (cd /d X:\blablabla) e dar o comando dir /-o (o parâmetro /-o desativa qualquer ordenação de listagem, mostrando os arquivos na sua "ordem natural")

    ResponderExcluir
  2. Marcio,

    Nem no meu XP, nem no DivX player (DVP5980), apagar arquivos faz diferença na ordenação do pendrive.

    ResponderExcluir
  3. Ótima dica. Putz. Meu MP3 Player (Craig Mini MP3 Player, o de visual parecido com o iPod Shuffle) não tem 'random', daí eu fui e renomeei todas as músicas para números, aleatóriamente. Assim, acreditando que o aparelho iria ler por ordem de nome ele funcionaria em 'random' (forçadamente).

    Tomei um susto quando vi que o aparelho estava lendo na mesma ordem das pastas, etc... Pensei até que a ordem estava nas tags das músicas (mp3).

    Agora entendi o porque da ordem :)

    Valeu.

    ResponderExcluir
  4. Faz algum tempo eu comprei um MP3 Player pro carro e me deparei com esse problema. Como eu uso um pendrive de 8GB com milhares de músicas em centenas de pastas, a gravação manual na ordem que eu queria (alfabética) não era uma opção.
    Sou programador em Delphi e já estava pra fazer um programa que copiasse os arquivos selecionados em ordem alfabética quando descobri que alguém já havia feito algo similar:

    http://wareseeker.com/Utilities/copyinorder-1.0.zip/2243ad0a7

    O programa só tem 64KB e é um executável independente. Você arrasta os arquivos desejados e pede a cópia. Claro ele só funciona para cópia, não reordena uma pasta já existente, por isso ele é bem simples mas serviu pra eu copiar a minha coleção de MP3s.

    Depois eu posso contar do programa que eu fiz que altera a Tag da MP3, passando o Nome do Artista, Título da Música e Nome do Álbum para o campo "Comment", permitindo exibir essas três informações de uma vez no MP3 Player que eu tenho (Pioneer 5UB), coisa que ele nativamente não faz.

    ResponderExcluir
  5. Anônimo3/5/09 20:30

    Oi,
    O link do foldersort morreu, se tiver uma cópia e puder disponibilizar ficarei grato!

    ResponderExcluir
  6. Daqui funciona normalmente.

    ResponderExcluir
  7. Excelente dica, estava precisando isso pra poder listar as pastas do meu pendrive em ordem alfabética no Pioneer do meu carro.

    E Jefferson, aquilo que o Márcio disse é sim verdade. Ele esqueceu de dizer também que alterar o nome de uma pasta pode interferir na ordem com que são listadas. Isso provavelmente acontece porque aumentar o nome de uma pasta exige um espaço maior, e pode ser necessário realocar tal diretório na memória para que seu novo nome caiba.

    Se quiser, pode fazer um teste no seu próprio PC. Coloque um pen-drive e vá gravando pastas com arquivos, depois dê um "dir /-o" e então vá fazendo mudanças (como no nome das pastas) e dando outros "dir /-o". Você verá que a ordem se altera.

    Abraço

    ResponderExcluir
  8. Acabo de testar o programa no meu pen drive e em cerca de 15 segundos ele organizou em ordem alfabética 8 Giga de músicas (incluindo as Subpastas!).

    Simplesmente genial. Extremamente útil se bem empregado!

    ResponderExcluir
  9. Apenas uma observação: se existirem muitas subpastas o programa demorará um pouco mais (cerca de 1 ou 2 minutos dependendo do número de subpastas). Aviso isso porque, como não há um indicador muito evidente de que o programa está trabalhando, alguém pode pensar que ele travou.

    T+

    ResponderExcluir
  10. T3chn0k está certo ao me corrigir. De fato, esqueci de dizer que a FAT usa registros múltiplos, quando o nome possui mais que 8.3 caracteres (ou seja, mais que 8 no nome E/OU mais que 3 na extensão). Para cada sub-registro inserido, é marcado um FLAG de "continua no próximo" (flag esse que faz com que o DOS e outros sistemas legados não reconhecam esses nomes, assumindo que aquelas entradas são "inválidas", e só mostrando os nomes curtos, que também estão salvos na FAT), e todos precisam estar contínuos para serem considerados como "um só". Por isso que, dependendo do tamanho do nome do arquivo, ele PODE ou não entrar no lugar de algum outro que foi pago, no diretório, só dependendo se ele vai caber ali ou não.

    ResponderExcluir
  11. Essa semana acabei precisando de um programa para ordenar os arquivos do pen drive e lembrei do seu post só que não queria um aplicativo que tenha que ser instalado e com algumas pesquisas no google encontrei o DriveSort que pode ser baixado em http://www.anerty.net/software/file/DriveSort.php

    ResponderExcluir
  12. Fernando,

    Obrigado pela contribuição!

    ResponderExcluir

Siga as regras do blog ou seu comentário será ignorado.