一、需求
从计算机盘(如D:/)中,搜索某个文件(如QQ.exe),找到后直接输出其位置。
二、分析
1、先找出D:盘下所有的一级文件对象;
2、遍历全部一级文件对象,判断是否是文件
3、如果是文件,判断是否是自己想要查找的文件
4、如果是文件夹,则需要继续进入到该文件夹中,重复上述过程
三、代码
/**
* 在目录下搜索某个文件
* @param dir 目录
* @param fileName 要搜素的文件名
*/
public static void searchFile(File dir, String fileName){
// 1.把非法情况拦截住
if (dir == null || !dir.exists() || dir.isFile()){
return; // 代表无法搜索
}
// 2.dir不是null,存在,且一定是目录对象
// 获取当前目录下的全部一级文件对象
File[] files = dir.listFiles();
// 3.判断当前目录下是否存在一级文件对象,以及是否可以拿到一级文件对象
if (files != null && files.length > 0){
// 4.遍历全部一级文件对象
for (File file : files) {
// 5.判断文件是否是文件还是文件夹
if (file.isFile()){
// 是文件,判断文件名是否是我们想要的
if (file.getName().contains(fileName)){
System.out.println("想要查找的文件位置:" + file.getAbsolutePath());
break;
}
}else{
// 是文件夹,继续重复这个过程
searchFile(file, fileName);
}
}
}
}
四、写在最后
学习过程中的简单练习,若对代码有疑问,欢迎来讨论!看到了一定回复!