如何使用Java 迭代目錄和子目錄中的文件
為了獲取完整的文件列表,包括子目錄中的文件,Java 提供了一個簡單的解決方案。透過利用遞歸,可以有效地導航檔案系統。
遞歸方法
利用 File#isDirectory() 來決定檔案是否代表目錄。如果為 true,則使用 File#listFiles() 的結果重複此程序。這稱為遞歸。
這是一個範例實作:
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()); } } }
Java 8 的Files#walk
對於Java 8 及更高版本,Files #walk () 提供了一種使用tail的便利替代方案遞歸:
Files.walk(dir).forEach(path -> showFile(path.toFile()));
這可以安全地處理深層層次結構,避免因過度遞歸而導致潛在的 StackOverflowError。
以上是如何在Java中遞歸遍歷檔案和子目錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!