java递归调用实现读取文件夹下所有文件
getFile类:
1 public class GetFile { 2 List list = new ArrayList(); 3 public List fileReader(File f){ 4 File[] flist = f.listFiles();//得到子文件夹列表 5 for(int i=0;i<flist.length;i++){ 6 if(flist[i].isDirectory()==true){ 7 fileReader(flist[i]);//如果是子文件夹递归调用自身 8 }else 9 flist[i].getAbsoluteFile(); 10 list.add(flist[i].getAbsolutePath());//得到文件名 11 } 12 return list; 13 } 14 }
有时需要读取文件夹中前n-1个文件(xml文件夹中最后是DTD文件)
可以再写一个方法
import java.io.File; import java.util.ArrayList; import java.util.List; public class GetFile { List list = new ArrayList(); public List fileReader(File f){ File[] flist = f.listFiles(); for(int i=0;i<flist.length;i++){ if(flist[i].isDirectory()==true){ fileReader2(flist[i]); } } return list; } public List fileReader2(File f){ File [] flist = f.listFiles(); for(int i=0;i<flist.length-1;i++){ list.add(flist[i].getAbsoluteFile()); } return list; } }
只有子文件夹下有文件时比较好使