Carregar arquivos ordenados pelo nome

Boa Tarde pessoal!

Alguém conhece alguma forma de carregar arquivos de maneira ordenada?

Por exemplo, quando temos um diretório em nosso computador podemos ter N arquivos com uma ordenação padrão, como por exemplo, pelo nome dos arquivos!

Existe alguma forma de carregar estes arquivos já ordenados pelo nome?

Eu sei que após carregados eu consigo ordená-los da forma como eu preferir, porém gostaria de saber se existe alguma alternativa para que os arquivos já sejam carregados com o mesmo padrão de ordenação em que se encontram no diretório.

Código de ordenação pós carregamento:

Path path = Paths.get("/etc", "/my-folder");
Files.list(path).sorted(Comparator.comparing(Path::getFileName));

A ideia seria tê-los carregados de forma ordenada sem precisar aplicar um sort.

Não, não há nenhuma garantia quanto a ordem que os arquivos são retornados.

Imaginando o cenário onde eu tenha vários GB de arquivos em um determinado diretório, qual seria a melhor maneira para manipular os mesmos tendo a necessidade de ordenação por nome?

Tem alguma recomendação?

Ao listar os arquivos, você não está abrindo nem manipulando eles, então o tamanho deles não vai influenciar na listagem.
Os sistemas de arquivos atuais costumam ter um limite de 4.294.967.295 arquivos por diretório.

1 curtida

Faz total sentido, eu já estava seguindo a abordagem correta!

Eu estava fazendo confusão na minha cabeça e achando que estaria manipulando todos os arquivos ao mesmo tempo, quando na verdade eu carrego somente a listagem dos paths a aplico a ordenação, e após isso divido a lista em pequenos lotes para aí sim manipular os arquivos.

Obrigado pelo apoio, pelo visto o que me faltava era alguém pra conversar à respeito! :sweat_smile:

2 curtidas

Exatamente.
Acredito que até se você tiver um diretório com 4.294.967.295 deve levar poucos segundos para ordenar em Java.

Você pode perceber lentidão ao ordenar no visualizador de arquivos do seu sistema operacional pois ele pode ler alguns metadados de cada arquivo para renderizar informações na interface de usuário.

1 curtida

Cuidado com os sistemas de ordenação automática. Verifique o resultado depois.

Tem uns que são sensíveis a maiúsculas e minúsculas, então a lista de arquivos aparece mais ou menos assim

Aaslahslia
Bialsjalisj
Claisjalisja
Dalisails
aiwuehsdj
bwoieuowieu
cwepoiwpoei

1 curtida

Nesse caso é só processamento em background mesmo, não deve afetar nesse sentido por não ter nada visual! :smile:

1 curtida

Já me certifiquei disso!

Já passei por um problema com essa situação no passado! :sweat_smile: