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