递归检索指定的文件
思路
1. 拿到目录及文件名
2. 到目录下开始遍历寻找,在开始之前需要做判空操作 预防空指针
3. 如果在外层循环中没有找到对应的文件 则继续到下一层循环中寻找 - 递归调用
4. 找到后可以选择直接结束循环 或等待全部检索完毕 程序自动推出
import java.io.File;
import java.io.IOException;
public class SearchFile {
public static void main(String[] args) {
searchFile(new File("D:\\ETJAVA"),"SlackSetup.exe");
}
/**
* 去某个目录下查询指定的文件
* @param target
* @param fileName
*/
static void searchFile(File target, String fileName){
// 1. 判断该目录是否为空 是否是目录
if(target.exists() && target.isDirectory()){
// 2. 提取当前目录下的全部一级文件
File[] files = target.listFiles();
// 3. 判断是否存在一级文件对象(判断目录是否不为空)
if(files!=null && files.length>0){
// 4. 变量一级文件对象
for (File file : files) {
// 5. 判断一级文件对象是文件还是目录
if(file.isFile()){
// 6. 判断是否是当前要寻找的文件
if(file.getName().contains(fileName)){
System.out.println(file.getAbsolutePath());
// 启动该文件
//Runtime r = Runtime.getRuntime();
try {
//r.exec(file.getAbsolutePath());
} catch (Exception e) {
throw new RuntimeException(e);
}
System.exit(0);
}
}else{
// 7. 继续进入目录寻找
searchFile(file,fileName);
}
}
}
}else {
System.out.println("---------------------");
}
}
}