需求:从文件中搜索,从D:盘中,搜出某个文件名称并输出其绝对路径
分析:
1先定位出一级文件对象
2遍历全部一级文件对象,判断是否是文件
3如果是文件,判断是否是自己想要的
4如果是文件夹,需要继续递归并重复上述过程
package com.file;
import java.io.File;
public class Test6 {
//要找的文件名称为 英语报告.pptx
public static void main(String[] args) {
//File f=new File("E:\\作业\\");
File file1=new File("E:\\");
sel(file1,"英语报告.pptx");
}
/**
* 查找文件
* @param file 传入盘符
* @param s 要找的文件的名称
*/
public static void sel(File f,String s) {
//只有用户传入的是文件夹才会进入程序
if(f!=null&&f.isDirectory()) {
File[] arr=f.listFiles();
//防止子目录有空文件夹,或者访问不了有权限的文件夹,就会返回一个NUll数组
if(arr!=null&&arr.length>0) {
//开始遍历
for (File f1 : arr) {
//如果是文件,就问问是不是咱们要找的文件
if(f1.isFile()) {
if(f1.getName().equals(s)) {//如果文件的名字等于咱们要找的文件的名字说明找到了
System.out.println("找到了");
System.out.println(f1.getAbsolutePath()); //把要找的文件的绝对路径打出来
}
}
//经过上层过滤,肯定就是文件夹了,把这个文件夹传入函数进行递归
else {
sel(f1, s);
}
}
}
}
else {
System.out.println("您输入的文件为空,或不是文件夹");
}
}
}