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
Linda Hamiltonoriginal
2024-12-09 05:45:11519parcourir

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());
        }
    }
}

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()));

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:
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