给定指定目录,将该目录下的文件按照树形结构打印

/**
     * 树形结构打印
     *
     * 思路:
     *     在打印文件时,考虑当前文件或目录相对给定的目录的层级
     *     每加深一层,多添加一个“-”操作
     *     考虑目录的层级问题,使用递归
     */
    public static void printTree(String filePath){
        File file=new File(filePath);
        if(!file.exists()){
            System.out.println("非法路径");
        }
        if(file.isFile()){
            //是文件
            System.out.println("|"+file.getName());
        }else{
            //是目录
            System.out.println("|"+file.getName());
            printDir(file,0);
        }
    }

    /**
     *
     * @param file 目录的file实例
     * @param dept 当前的深度
     */
    private static void printDir(File file,int dept){
        String pre="|";
        for(int i=0;i<=dept;i++){
            pre+="-";
        }
        File[] files = file.listFiles();
        for(int i=0;i<files.length;i++){
            File file1=files[i];
            System.out.println(pre+file1.getName());
            if(file1.isDirectory()){
                printDir(file1,dept+1);
            }
        }
    }

    public static void main(String[] args) {
        String path="E:\\java\\IO";
        printTree(path);
    }

结果:

猜你喜欢

转载自blog.csdn.net/iiiiiiiiiooooo/article/details/121122194