Leggi tutti i file di una cartella in Java
- Come leggere tutti i file di una cartella in Java
-
Leggere tutti i file di una cartella utilizzando la classe
Files
in Java -
Leggere tutti i file da una cartella utilizzando il metodo
newDirectoryStream()
in Java -
Leggere tutti i file di una cartella utilizzando il metodo
walkFileTree()
in Java
Questo tutorial introduce come leggere tutti i file di una cartella in Java ed elenca alcuni codici di esempio per comprenderlo.
Esistono diversi modi per ottenere tutti i file di una cartella. Qui potremmo usare le classi File
, Files
e DirectoryStream
e molte altre. Vediamo gli esempi.
Come leggere tutti i file di una cartella in Java
Qui, usiamo la classe File
per raccogliere tutti i file e le cartelle nella directory di origine e quindi usiamo il metodo isDirectory()
per verificare se si tratta di un file o di una cartella. Vedi l’esempio sotto.
import java.io.File;
import java.text.ParseException;
public class SimpleTesting {
public static void findAllFilesInFolder(File folder) {
for (File file : folder.listFiles()) {
if (!file.isDirectory()) {
System.out.println(file.getName());
} else {
findAllFilesInFolder(file);
}
}
}
public static void main(String[] args) throws ParseException {
File folder = new File("/home/folder/src");
findAllFilesInFolder(folder);
}
}
Leggere tutti i file di una cartella utilizzando la classe Files
in Java
Se vuoi usare stream, usa il metodo walk()
della classe Files
che restituisce uno stream
di Path. Dopodiché, usiamo il metodo filter()
per raccogliere solo i file e usiamo forEach()
per stamparli.
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.stream.Stream;
public class SimpleTesting {
public static void main(String[] args) throws IOException {
try (Stream<Path> paths = Files.walk(Paths.get("/home/folder/src"))) {
paths.filter(Files::isRegularFile).forEach(System.out::println);
}
}
}
Leggere tutti i file da una cartella utilizzando il metodo newDirectoryStream()
in Java
Qui, usiamo la classe Files
e il suo metodo newDirectoryStream()
che restituisce un flusso di Path
. Dopodiché, usiamo un bucle for-each
per iterare l’lista dei file e stampare il nome del file.
import java.io.IOException;
import java.nio.file.DirectoryIteratorException;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class SimpleTesting {
public static void main(String[] args) throws IOException {
try (DirectoryStream<Path> stream = Files.newDirectoryStream(Paths.get("/home/folder/src/"))) {
for (Path file : stream) {
System.out.println(file.getFileName());
}
} catch (IOException | DirectoryIteratorException ex) {
System.err.println(ex);
}
}
}
Leggere tutti i file di una cartella utilizzando il metodo walkFileTree()
in Java
Qui, usiamo il metodo walkFileTree()
della classe Files
che accetta due argomenti: la cartella dei sorgenti e il riferimento SimpleFileVisitor
. Vedi l’esempio sotto.
import java.io.IOException;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
public class SimpleTesting {
public static void main(String[] args) throws IOException {
SimpleFileVisitor<Path> file = new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path filePath, BasicFileAttributes attrs)
throws IOException {
System.out.println(filePath);
return FileVisitResult.CONTINUE;
}
};
Files.walkFileTree(Paths.get("/home/folder/src"), file);
}
}
Articolo correlato - Java File
- Rimuovi interruzioni di linea forma un file in Java
- Leggere un file di testo in Java
- Rinominare un file in Java
- Salva una stringa in un file in Java
- Come leggere file XML in Java
- Controlla se un file esiste in Java