Versione (ricorsiva) pre Java 8. Il seguente metodo prende in input un oggetto di tipo file (folder) che rappresenta la directory di cui si vuole leggere il contenuto e stampa su standard output il nome dei file contenuti in essa. Se la directory in input contiene sotto directory, questo metodo elenca in maniera ricorsiva anche i file presenti in queste ultime.
public void listFiles(final File folder) {
for (final File fileEntry : folder.listFiles()) {
if (fileEntry.isDirectory()) {
listFiles(fileEntry);
} else {
System.out.println(fileEntry.getName());
}
}
}
final File folder = new File("/home/you/Desktop");
listFiles(folder);
Versione Java >= 8. Qui si utilizza la classe Files che è una classe di utilità che mette a disposizione vari metodi statici per operare sui file.
try (Stream<Path> paths = Files.walk(Paths.get("/home/you/Desktop"))) {
paths.filter(Files::isRegularFile)
.forEach(System.out::println);
}