Os arquivos em um diretório e seus subdiretórios são listados usando um método recursivo.
O método lista os arquivos no diretório atual e, em seguida, chama-se recursivamente para todos os subdiretórios.
import java.io.File;
public class FolderListAllFilesDirectory {
public static void listAllFiles(File file){
// List all the files using the filter
File[] tab = file.listFiles();
for( File current : tab ){
if( current.isFile() )
System.out.println( current.getAbsolutePath() + " is a file " );
else if( current.isDirectory() ){
listAllFiles( current );
}
}
}
public static void main(String[] argv) {
File file = new File("V:/tmp/aaa");
listAllFiles( file );
}
}
V:\tmp\aaa\New Text Document.txt is a file V:\tmp\aaa\oliviertech.com\index.html is a file V:\tmp\aaa\oliviertech.com\test\test.txt is a file V:\tmp\aaa\oliviertech.com\test.html is a file
O método exibia os arquivos e processava cada subdiretório conforme eles são retornados pelo sistema de arquivos. O método pode ser modificado para processar pela largura primeiro, os arquivos são retornados primeiro. Ou o método pode processar por profundidade primeiro: os diretórios e subdiretórios são processados primeiro.