Comment lire tous les fichiers d'un dossier en Java
- Comment lire tous les fichiers d’un dossier en Java
-
Lire tous les fichiers d’un dossier en utilisant la classe
Files
en Java -
Lire tous les fichiers d’un dossier en utilisant la méthode
newDirectoryStream()
en Java -
Lire tous les fichiers d’un dossier en utilisant la méthode
walkFileTree()
en Java
Ce tutoriel présente la manière de lire tous les fichiers d’un dossier en Java et donne quelques exemples de codes pour le comprendre.
Il existe plusieurs façons d’obtenir tous les fichiers d’un dossier. Ici, nous pourrions utiliser les classes File
, Files
et DirectoryStream
, et bien d’autres encore. Voyons les exemples.
Comment lire tous les fichiers d’un dossier en Java
Ici, nous utilisons la classe File
pour collecter tous les fichiers et dossiers dans le répertoire source, puis nous utilisons la méthode isDirectory()
pour vérifier s’il s’agit d’un fichier ou d’un dossier. Voir l’exemple ci-dessous.
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);
}
}
Lire tous les fichiers d’un dossier en utilisant la classe Files
en Java
Si vous voulez utiliser stream, utilisez la méthode walk()
de la classe Files
qui retourne un stream Path
. Après cela, nous utilisons la méthode filter()
pour collecter les fichiers uniquement et utilisons forEach()
pour les imprimer.
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);
}
}
}
Lire tous les fichiers d’un dossier en utilisant la méthode newDirectoryStream()
en Java
Ici, nous utilisons la classe Files
et sa méthode newDirectoryStream()
qui retourne un flux de Path
. Ensuite, nous utilisons une boucle for-each
pour itérer la liste des fichiers et imprimer le nom du fichier.
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);
}
}
}
Lire tous les fichiers d’un dossier en utilisant la méthode walkFileTree()
en Java
Ici, nous utilisons la méthode walkFileTree()
de la classe Files
qui prend deux arguments : le dossier source et la référence SimpleFileVisitor
. Voir l’exemple ci-dessous.
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);
}
}
Article connexe - Java File
- Comment supprimer les sauts de ligne d'un fichier en Java
- Fermer un fichier en Java
- Déplacer le fichier du répertoire actuel vers un nouveau répertoire en Java
- Sélecteur de fichiers en Java
- Créer un fichier s'il n'existe pas en Java
- Lire le fichier à partir des ressources en Java