Maison > Java > javaDidacticiel > Comment parcourir de manière récursive des fichiers et des sous-répertoires en Java ?

Comment parcourir de manière récursive des fichiers et des sous-répertoires en Java ?

Linda Hamilton
Libérer: 2024-12-09 05:45:11
original
572 Les gens l'ont consulté

How to Recursively Iterate Through Files and Subdirectories in Java?

Comment parcourir les fichiers dans les répertoires et sous-répertoires à l'aide de Java

Pour obtenir une liste complète des fichiers, y compris ceux des sous-répertoires, Java fournit une solution simple. En tirant parti de la récursion, il est possible de naviguer efficacement dans le système de fichiers.

Approche récursive

Utilisez File#isDirectory() pour déterminer si un fichier représente un répertoire. Si c'est vrai, répétez le processus avec le résultat de File#listFiles(). C'est ce qu'on appelle la récursion.

Voici un exemple d'implémentation :

public static void showFiles(File[] files) {
    for (File file : files) {
        if (file.isDirectory()) {
            System.out.println("Directory: " + file.getAbsolutePath());
            showFiles(file.listFiles()); // Recursive call
        } else {
            System.out.println("File: " + file.getAbsolutePath());
        }
    }
}
Copier après la connexion

Fichiers de Java 8#walk

Pour Java 8 et supérieur, les fichiers #walk() offre une alternative pratique qui utilise la récursion de la queue :

Files.walk(dir).forEach(path -> showFile(path.toFile()));
Copier après la connexion

Cela en toute sécurité gère les hiérarchies profondes, évitant les potentielles StackOverflowError dues à une récursivité excessive.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal