首頁 > Java > java教程 > 如何在Java中遞歸遍歷檔案和子目錄?

如何在Java中遞歸遍歷檔案和子目錄?

Linda Hamilton
發布: 2024-12-09 05:45:11
原創
517 人瀏覽過

How to Recursively Iterate Through Files and Subdirectories in Java?

如何使用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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板