Buscar arquivos com extensões específicas no PC

Olá pessoal.

Preciso desenvolver um Software que me retorne uma lista com o nome dos arquivos e seus respectivos caminhos desde que os mesmos possuam extensões específicas em plataforma Windows.

Pensei em executar o DIR/S para depois ir filtrando o que ele me retornasse, mas aí fico perdido com relação a usar a classe Runtime e Process…

Alguém poderia me ajudar em como começar?

Obrigado!

de uma olhada em java.io.File (método listFiles(FileFilter filter) )

[ ]s

Ok. Com algumas jogadinhas de cintura e alguns auxílios eu matei o problema, todavia, apareceu outo.

Estou verificando também todos os drives presentes no computador, logo, podem existir Drives de CDROM no meio da varredura que caso não tenha CD dentro do Drive, o Windows exibe a mensagem reclamando de que não há mídia no drive. Com o JAVA há alguma maneira de tratar isso de modo que independente de se ter ou não mídia dentro do drive, ele não exiba essa mensagem?

Pois a idéia é efetuar um scan geral na máquina sem que o usuário esteja ciente disso.

Pensei em filtrar para que o programa não leia o D: só que existem micros com mais de 1 HD instalado, aí não há como filtrar de tal modo.

Você pode fazer assim:

[code]File f = new File(“d:/”);
if (f.canRead() ) {
System.out.println( "A unidade possui: " + f.listFiles().length );

} else {
System.out.println(“Verifique o drive de CD”);
}
[/code]

:frowning: Infelizmente não funcionou. Ele faz a verificação com o método “canRead()” só que mesmo assim exibe a mensagem do Windows dizendo que não foí possível ler a unidade (por ser unidade de CDROM e o mesmo não conter um CD inserido).

Puts… :frowning:

Fiz o teste aqui e funcionou.
Não exibiu janela nenhuma do windows não.

Sim ma você está executando daonde?

Se eu rodo no NetBeans ele naum da essa mensagem, mas se eu compilo e executo pelo prompt de comando aí sim ele da a mensagem.

Não sei o que eu fiz aqui que funcionou. Ele não está mais reclamando. Mas o estranho é que estava reclamando com o canRead(), todavia, não está mais. Acho que depende da forma com o qual você executa o programa ele vem a exibir a mensagem ou não.

Eis um dos mistérios do Java.

Obrigado pelo Help.

Se for no Java 6, veja os métodos static listRoots() e getFreeSpace() da classe file.