Boa noite, existe um metodo ou uma função para criação de um algoritmo ou programa cujo o objetivo e procurar extensões nos diretorios do sistema operacional… em linguaguem java, excluindo, movendo ou copiando os arquivos?
1 curtida
O Commons IO tem bastante coisa pronta. Se quiser algo simples e rápido, escrevi para você.
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author David
*/
public class Utils {
/**
* @param args the command line arguments
*/
public static void main( String[] args ) throws Exception {
// busca por todos os arquivos com extensão exe a partir
// da raiz da unidade C
for ( File arquivo : buscaArquivosPorExtencao( new File( "C:\\" ), "exe" ) ) {
System.out.println( arquivo );
}
}
/**
* Executa uma busca por profundidade por arquivos com extensão desejada.
*
* @param arquivo O arquivo a ser processado.
* @param extensao A extensão que será pesquisada.
* @return Uma lista com todos os arquivos encontrados.
*/
public static List<File> buscaArquivosPorExtencao( File arquivo, String extensao ) {
List<File> encontrados = new ArrayList<>();
buscaArquivosPorExtencaoR( arquivo, encontrados, extensao );
return encontrados;
}
/**
* Executa uma busca por profundidade por arquivos com extensão desejada.
* Como o sistema de arquivos é uma árvore, não há necessidade de se
* preocupar com ciclos no grafo.
*
* @param arquivo O arquivo a ser processado.
* @param encontrados Lista com a coleta dos arquivos encontrados com a
* extensão desejada.
* @param extensao A extensão que será pesquisada.
*/
private static void buscaArquivosPorExtencaoR( File arquivo, List<File> encontrados, String extensao ) {
// o arquivo é um diretório?
if ( arquivo.isDirectory() ) {
try {
// se for, percorre todos os arquivos dentro dele
for ( File a : arquivo.listFiles() ) {
// para cada arquivo, invoca recursivamente esse método
buscaArquivosPorExtencaoR( a, encontrados, extensao );
}
} catch ( NullPointerException exc ) {
// vai chegar aqui em algumas situações para arquivos do sistema
// então, ignora esses casos
}
// não, o arquivo não é um diretório
} else {
// verifica se o nome do arquivo termina com a extensão
if ( arquivo.getName().endsWith( extensao ) ) {
// se terminar, adiciona na lista
encontrados.add( arquivo );
}
}
}
}
1 curtida