📜  java文件搜索递归 - Java(1)

📅  最后修改于: 2023-12-03 15:32:03.747000             🧑  作者: Mango

Java文件搜索递归

在开发Java项目时,经常需要搜索指定目录下的所有Java文件。使用递归算法可以很方便地实现这个需求。

实现递归算法
import java.io.File;

public class JavaFileSearch {

    public static void main(String[] args) {
        String directoryPath = "/path/to/directory"; // 指定目录路径
        searchDirectory(directoryPath);
    }

    public static void searchDirectory(String directoryPath) {
        File directory = new File(directoryPath);
        File[] files = directory.listFiles();

        if (files != null) {
            for (File file : files) {
                if (file.isDirectory()) { // 如果是目录则递归搜索
                    searchDirectory(file.getPath());
                } else if (isJavaFile(file)) { // 如果是Java文件则输出路径
                    System.out.println(file.getPath());
                }
            }
        }
    }

    public static boolean isJavaFile(File file) {
        String fileName = file.getName();
        return fileName.endsWith(".java");
    }

}
解析代码
定义搜索目录路径
String directoryPath = "/path/to/directory";
调用搜索方法
searchDirectory(directoryPath);
实现搜索方法
public static void searchDirectory(String directoryPath) {
    File directory = new File(directoryPath); // 创建目录文件对象
    File[] files = directory.listFiles(); // 获取目录下所有文件和目录

    if (files != null) {
        for (File file : files) {
            if (file.isDirectory()) { // 如果是目录则递归搜索
                searchDirectory(file.getPath());
            } else if (isJavaFile(file)) { // 如果是Java文件则输出路径
                System.out.println(file.getPath());
            }
        }
    }
}
实现判断是否为Java文件方法
public static boolean isJavaFile(File file) {
    String fileName = file.getName(); // 获取文件名
    return fileName.endsWith(".java");
}
运行程序
  • 将程序保存为JavaFileSearch.java文件
  • 在终端中进入程序所在目录
  • 编译程序:javac JavaFileSearch.java
  • 运行程序:java JavaFileSearch
总结

通过以上递归算法的实现,我们可以搜索指定目录下的所有Java文件。在实际开发中,可以根据实际需求对程序进行调整和优化,比如加入文件过滤条件、统计Java文件数量等。