需求:遍历一个文件夹下的所有文件夹和文件,全部存放到resultList中
/**
* 不体现层级关系
*/
@Test
public void testRecursion(){
String path = "E:\\testRecursion";
File file = new File(path); //获取file对象
List<File> resultList = getFiles(file,new ArrayList<>());
System.out.println(resultList);
}
public List<File> getFiles(File file,List<File> result){
File[] fs = file.listFiles();
if(fs.length!=0){
for(int i=0;i<fs.length;i++){
result.add(fs[i]);
if(fs[i].isDirectory()){
getFiles(fs[i],result);
}
}
}else{
return null;
}
return result;
}
输出结果:
[E:\testRecursion\test1, E:\testRecursion\test1\test11, E:\testRecursion\test1\test11\test111.txt, E:\testRecursion\test2.txt]