使用 File.listFiles() 遞歸列出目錄下所有檔案(含隱藏檔),附 PHP 實作對比。
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
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() 或空目錄。dir() 物件逐一讀取,需手動排除 . ..。