Java实现当前目录下的所有子目录和文件,并按层级打印

时间:2023-01-11 12:07:13

目录下有子目录,子目录下有子目录,很容易想到用递归来实现。

    /**
     * 递归实现按层级打印目录下的子目录和文件
     * @param file 所在目录
     * @param count 所在层级
     */
    public static void getFileName(File file,int count) {
        for(File f:file.listFiles()) {         //遍历目录
            String preStr = "";
            for(int i=0; i<=count; i++) {    //所在层级的输出格式
                preStr += " ";
            }
            System.out.println(preStr+f.getName());
            if(f.isDirectory()){            //是否为目录
                count++;
                getFileName(f,count);        //递归调用
            }
            
        }
    }


在程序中最好是避免使用递归方法!

非递归实现:

算法设计的不好,就不贴出来了,有好的方法希望能多分享交流。

非递归实现个人觉得满意后再贴出来。