Heim > Java > javaLernprogramm > Wie kann man Dateien und Unterverzeichnisse in Java rekursiv durchlaufen?

Wie kann man Dateien und Unterverzeichnisse in Java rekursiv durchlaufen?

Linda Hamilton
Freigeben: 2024-12-09 05:45:11
Original
515 Leute haben es durchsucht

How to Recursively Iterate Through Files and Subdirectories in Java?

So durchlaufen Sie Dateien in Verzeichnissen und Unterverzeichnissen mit Java

Um eine umfassende Liste von Dateien zu erhalten, einschließlich derjenigen in Unterverzeichnissen, bietet Java eine unkomplizierte Lösung. Durch die Nutzung der Rekursion ist es möglich, effektiv im Dateisystem zu navigieren.

Rekursiver Ansatz

Verwenden Sie File#isDirectory(), um zu bestimmen, ob eine Datei ein Verzeichnis darstellt. Wenn „true“, wiederholen Sie den Vorgang mit dem Ergebnis von File#listFiles(). Dies wird als Rekursion bezeichnet.

Hier ist eine Beispielimplementierung:

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());
        }
    }
}
Nach dem Login kopieren

Files#walk von Java 8

Für Java 8 und höher: Files #walk() bietet eine praktische Alternative, die die Schwanzrekursion verwendet:

Files.walk(dir).forEach(path -> showFile(path.toFile()));
Nach dem Login kopieren

Dies geht sicher in die Tiefe Hierarchien, wodurch potenzielle StackOverflowError aufgrund übermäßiger Rekursion vermieden werden.

Das obige ist der detaillierte Inhalt vonWie kann man Dateien und Unterverzeichnisse in Java rekursiv durchlaufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage