首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java IO 遞歸遍歷目錄:File.listFiles() 實現文件樹列表與 PHP 對比

     編輯:Java 綜合教學

Java IO 遞歸遍歷目錄

使用 File.listFiles() 遞歸列出目錄下所有檔案(含隱藏檔),附 PHP 實作對比。

Java 實作

import java.io.File;

public class FileDemo {
    public static void main(String[] args) {
        File file = new File("E:/adt-bundle-windows/workspace/IpTest");
        showDir(file);
    }

    public static void showDir(File file) {
        System.out.println("目錄:" + file);
        File[] files = file.listFiles();
        if (files == null) return;
        for (File f : files) {
            if (f.isDirectory()) {
                showDir(f); // 遞歸
            } else {
                System.out.println(" 文件:" + f);
            }
        }
    }
}

PHP 實作

<?php
class FileDemo {
    public static function main() {
        self::showDir("E:/adt-bundle-windows/workspace/IpTest");
    }
    public static function showDir($path) {
        echo "目錄:" . $path . "<br/>";
        $dir = dir($path);
        while (($entry = $dir->read()) !== false) {
            if ($entry == "." || $entry == "..") continue;
            $full = $path . "/" . $entry;
            if (is_dir($full)) self::showDir($full);
            else echo "  文件:" . $entry . "<br/>";
        }
        $dir->close();
    }
}
FileDemo::main();
?>

關鍵點

  • File.listFiles() 返回 File[],含檔案與子目錄;若目錄不存在或無權限返回 null 需防禦。
  • 遞歸終止條件:!isDirectory() 或空目錄。
  • PHP 使用 dir() 物件逐一讀取,需手動排除 . ..。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved