📅  最后修改于: 2023-12-03 15:32:03.747000             🧑  作者: Mango
在开发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());
}
}
}
}
public static boolean isJavaFile(File file) {
String fileName = file.getName(); // 获取文件名
return fileName.endsWith(".java");
}
javac JavaFileSearch.java
java JavaFileSearch
通过以上递归算法的实现,我们可以搜索指定目录下的所有Java文件。在实际开发中,可以根据实际需求对程序进行调整和优化,比如加入文件过滤条件、统计Java文件数量等。