/*
需求:把C:\Users\Administrator\Desktop\记录目录下所有以.java结尾的文件的绝对路径输出到控制台
分析:
A:封装该目录
B:获取该目录下的所有文件或文件夹的File数组
C:遍历该File数组,得到每个File对象
D:判断所遍历的File对象是否是文件夹:
是:回到B,继续执行
不是:判断是否是以.java结尾
是:输出该文件的绝对路径
不是:不理
总结:上面的分析中,如果是以递归来做。那么,B、C、D两个步骤可以设为个递归方法,该递归方法:
返回类型:void
参数列表:File xxx
出口:以.java结尾
*/
package zl_DiGui; import java.io.File;
public class FilePathDemo { public static void main(String[] args) {
//封装该目录
File allfile = new File("C:\\Users\\Administrator\\Desktop\\记录"); //调用递归
getjavafile(allfile);
}
//建立递归方法
private static void getjavafile(File allfile) { // 获取该目录下所有文件或文件夹的File数组
File[] arryfile = allfile.listFiles(); //对该File数组进行遍历
for(File file : arryfile){ //判断是否是文件夹
if(file.isDirectory()){
//是的话,就继续以这个文件夹为目录,获取它里面的文件或文件夹的File数组
//也就是返回步骤B
getjavafile(file);
}
else{
//如果不是文件夹,而是文件,则判断是否以.java结尾
if(file.getName().endsWith(".java")){
//是的话就输出它的绝对路径
System.out.println(file.getAbsolutePath());
}
}
} } }