首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Java 遞歸遍歷目錄查找所有 .java 文件

     編輯:程式設計疑難解答

需求

給定根目錄,遞歸查找所有子目錄下的 `.java` 文件。

代碼實現


import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class JavaFileFinder {
    public static List findJavaFiles(File root) {
        List result = new ArrayList<>();
        if (root == null || !root.exists()) return result;
        File[] files = root.listFiles();
        if (files == null) return result;
        for (File f : files) {
            if (f.isDirectory()) {
                result.addAll(findJavaFiles(f)); // 遞歸
            } else if (f.getName().endsWith(".java")) {
                result.add(f);
            }
        }
        return result;
    }

    public static void main(String[] args) {
        List javaFiles = findJavaFiles(new File("."));
        for (File f : javaFiles) System.out.println(f.getAbsolutePath());
    }
}

Java 7+ 更簡潔:Files.walk


List javaFiles = Files.walk(Paths.get("."))
    .filter(p -> p.toString().endsWith(".java"))
    .collect(Collectors.toList());

注意

  • 遞歸深度極大時可能棧溢出,`Files.walk` 內部用迭代器避免此問題。
  • 權限不足目錄會拋出 `IOException`,需 try-catch。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved