import java.io.File;
public class RecursionDemo2 {
public static void main(String[] args) {
searchFiles(new File("D:\\"), "YoudaoDict.exe");
}
/**
* 返回被查找到的文件的绝对路径
* @param dir 被查找的源目录
* @param fileName 查找的文件名
*/
private static void searchFiles(File dir, String fileName) {
//定义一个标志位 flag 默认没找到
boolean flag=false;
//判断dir 是否为目录和目录是否为存在
if (dir.exists() && dir.isDirectory()) {
//遍历文件夹中的各个文件
File[] files = dir.listFiles();
//判断dir目录下的是否存在一级文件对象
if (files != null && files.length > 0) {
for (File f1 : files) {
if (!flag) {
//找到的是文件,判断是否是想要找的文件
if (f1.isFile() && f1.getName().contains(fileName)) {
System.out.println("找到了,路径是:"+f1.getAbsolutePath());
} else {
searchFiles(f1, fileName);//找到的是文件夹,继续递归
flag=false;
}
} else {
flag=true;
break;//找到了退出循环,增强性能
}
}
}
}
}
}