Java获取文件夹下的目录结构,子文件夹和子文件I名称

写了递归取获取目录结构数据,但是文件夹河子文件夹平级了,想要树型结构的

/**
     * 输出给定目录下的文件,包括子目录中的文件
     *
     * @param dirPath 给定的目录
     */
    public Map<String, List<String>> readFiles(String dirPath, Map<String, Map> fileAndDirMap) {
        // 建立当前目录中文件的File对象
        File file = new File(dirPath);
        // 取得代表目录中所有文件的File对象数组
        File[] list = file.listFiles();
        List<String> fileNameList = new ArrayList<>();
        Map<String, List<String>> fileMap = new LinkedHashMap<>();
        fileMap.put(dirPath, fileNameList);
        for (File file1 : list) {
            if (file1.isDirectory()) {
                fileAndDirMap.put(dirPath, fileMap);
                readFiles(file1.getPath(), fileAndDirMap);
            } else {
                fileNameList.add(file1.getName());
            }
        }
        fileAndDirMap.put(dirPath, fileMap);
        // 遍历file数组
        return fileMap;
    }

 

    // 控制层
    @ResponseBody
    @RequestMapping(value = "dgFileList")
    public String dgFileList(){
        String path = "C:\\Users\\HASEE\\Desktop\\近期文件\\";
        File file = new File(path);
        // 建立当前目录中文件的File对象
        File fileL = new File(path);
        // 取得代表目录中所有文件的File对象数组
        File[] listL = file.listFiles();
        Map<String, Object> fileAndDirMap = new LinkedHashMap<>();
        Map<String, Object> stringListMap = FileUtil.readFiles(fileAndDirMap, listL);
        return JSON.toJSONString(stringListMap);
    }

    // 工具类
    public static Map<String, Object> readFiles(Map<String, Object> listSz, File[] list)        {
        for (File file1 : list) {
            if (file1.isDirectory()) {
                Map<String, Object> listSzx = new LinkedHashMap<>();
                listSz.put(file1.getName(), listSzx);
                File fileL = new File(file1.getPath());
                readFiles(listSzx, fileL.listFiles());
            } else {
                listSz.put(file1.getName(), file1.getAbsolutePath());
            }
        }
        return listSz;
    }

效果

 

 

你是指打印格式吗?加个count每一层递增,像打印菱形图形那种方法