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
539 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!

source:php.cn
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