递归-简单实例

需求:遍历一个文件夹下的所有文件夹和文件,全部存放到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]

猜你喜欢

转载自blog.csdn.net/qq_34624315/article/details/81542847
今日推荐