1 /* 2 需求:把C:UsersAdministratorDesktop记录目录下所有以.java结尾的文件的绝对路径输出到控制台 3 分析: 4 A:封装该目录 5 B:获取该目录下的所有文件或文件夹的File数组 6 C:遍历该File数组,得到每个File对象 7 D:判断所遍历的File对象是否是文件夹: 8 是:回到B,继续执行 9 不是:判断是否是以.java结尾 10 是:输出该文件的绝对路径 11 不是:不理 12 总结:上面的分析中,如果是以递归来做。那么,B、C、D两个步骤可以设为个递归方法,该递归方法: 13 返回类型:void 14 参数列表:File xxx 15 出口:以.java结尾 16 */ 17 package zl_DiGui; 18 19 import java.io.File; 20 public class FilePathDemo { 21 22 public static void main(String[] args) { 23 //封装该目录 24 File allfile = new File("C:\Users\Administrator\Desktop\记录"); 25 26 //调用递归 27 getjavafile(allfile); 28 } 29 //建立递归方法 30 private static void getjavafile(File allfile) { 31 32 // 获取该目录下所有文件或文件夹的File数组 33 File[] arryfile = allfile.listFiles(); 34 35 //对该File数组进行遍历 36 for(File file : arryfile){ 37 38 //判断是否是文件夹 39 if(file.isDirectory()){ 40 //是的话,就继续以这个文件夹为目录,获取它里面的文件或文件夹的File数组 41 //也就是返回步骤B 42 getjavafile(file); 43 } 44 else{ 45 //如果不是文件夹,而是文件,则判断是否以.java结尾 46 if(file.getName().endsWith(".java")){ 47 //是的话就输出它的绝对路径 48 System.out.println(file.getAbsolutePath()); 49 } 50 } 51 } 52 53 } 54 55 }