java查询目标路径下的所有文件并分类

1、首先要准备一个可以查询文件和分类的工具类

/**
     *  查询文件
     * @param file 目标路径
     * @param list 装查询的文件容器
     * @throws IOException
     */
    public static void queryAllFile(File file, List<Map> list) throws IOException {
        File[] files = file.listFiles();
        for (File f : files) {//迭代
            if (f.isDirectory()) {//判断是否是文件夹,如果是,则将文件夹套入本方法重新查询
                queryAllFile(f, list);
            } else {
                Map map = new HashMap();//创建一个装信息的map
                map.put("filePath", f.getCanonicalPath());
                map.put("downloadPath", (f.getCanonicalPath()).replaceAll("\\\\", "/"));//下载路径和文件路径不是一致的,若按文件路径,会报字符不规范的错误
                map.put("fileName", f.getName());
                double size = f.length();//获取文件大小,单位字节
                if (size / 1048576 >= 1) {//转换单位
                    map.put("fileSize", (f.length() / 1048576) + "MB");
                } else if (size / 1024 >= 1 && size / 1048576 < 1) {
                    map.put("fileSize", (f.length() / 1024) + "KB");
                }
                String[] type = f.getName().split("\\.");//获取类型
                map.put("fileType", type[type.length - 1]);
                list.add(map);//将查出的文件信息装入容器
            }
        }
    }
/**
     * 分类
     * @param list 查询好的文件容器
     * @return
     */
    public static Map resultFile(List<Map> list){
        List<String> typelist = new ArrayList();
        for (Map map : list) {
            if (!typelist.contains(map.get("fileType").toString())) {//判断类型容器中是否包含目前所获取的类型,不包含则添加
                typelist.add(map.get("fileType").toString());
            }
        }
        // logger.info(typelist.toString());
        Map a = new HashMap();
        for (String str : typelist) {//取出类型
            List<Map> resultlist = new ArrayList();
            for (Map map : list) {//遍历文件容器,类型相同的放入结果容器中
                if (str.equals(map.get("fileType").toString())) {
                    resultlist.add(map);
                }
            }
            a.put(str,resultlist);//将结果容器装入
        }
        logger.info(a.toString());
        return a;
    }

2、测试

@RequestMapping(value = "/queryFiles", method = RequestMethod.GET)
    public Map<String, Object> queryFiles() throws Exception {
        Map<String, Object> result = new HashMap<>();
        List<Map> list=new ArrayList();
        File file=new File("E:\\桌面\\test\\Spring\\src\\main\\resources\\static");
        //PageHelper.startPage(1,10);
        download.queryAllFile(file,list);
        Map map=new HashMap();
        map=download.resultFile(list);
        //PageInfo info=new PageInfo(list);
        result.put("files", map);
        return result;
    }

3、结果

目标路径

 

 

 返回结果:

{
    "files": {
        "jpg": [
            {
                "fileName": "test.jpg",
                "downloadPath": "E:/桌面/test/Spring/src/main/resources/static/test.jpg",
                "fileSize": "1MB",
                "filePath": "E:\\桌面\\test\\Spring\\src\\main\\resources\\static\\test.jpg",
                "fileType": "jpg"
            }
        ],
        "zip": [
            {
                "fileName": "zui-1.9.2-dist.zip",
                "downloadPath": "E:/桌面/test/Spring/src/main/resources/static/testDIC/zui-1.9.2-dist.zip",
                "fileSize": "1MB",
                "filePath": "E:\\桌面\\test\\Spring\\src\\main\\resources\\static\\testDIC\\zui-1.9.2-dist.zip",
                "fileType": "zip"
            }
        ],
        "txt": [
            {
                "fileName": "README.txt",
                "downloadPath": "E:/桌面/test/Spring/src/main/resources/static/README.txt",
                "fileSize": "2KB",
                "filePath": "E:\\桌面\\test\\Spring\\src\\main\\resources\\static\\README.txt",
                "fileType": "txt"
            }
        ],
        "css": [
            {
                "fileName": "plugOne.css",
                "downloadPath": "E:/桌面/test/Spring/src/main/resources/static/MyPlugs/css/plugOne.css",
                "fileSize": "2KB",
                "filePath": "E:\\桌面\\test\\Spring\\src\\main\\resources\\static\\MyPlugs\\css\\plugOne.css",
                "fileType": "css"
            },
            {
                "fileName": "plugTwo.css",
                "downloadPath": "E:/桌面/test/Spring/src/main/resources/static/MyPlugs/css/plugTwo.css",
                "fileSize": "2KB",
                "filePath": "E:\\桌面\\test\\Spring\\src\\main\\resources\\static\\MyPlugs\\css\\plugTwo.css",
                "fileType": "css"
            }
        ],
        "rar": [
            {
                "fileName": "clipboard(jb51.net).rar",
                "downloadPath": "E:/桌面/test/Spring/src/main/resources/static/MyPlugs/js/copy/clipboard(jb51.net).rar",
                "fileSize": "17KB",
                "filePath": "E:\\桌面\\test\\Spring\\src\\main\\resources\\static\\MyPlugs\\js\\copy\\clipboard(jb51.net).rar",
                "fileType": "rar"
            }
        ],
        "png": [
            {
                "fileName": "close.png",
                "downloadPath": "E:/桌面/test/Spring/src/main/resources/static/MyPlugs/images/close.png",
                "fileSize": "7KB",
                "filePath": "E:\\桌面\\test\\Spring\\src\\main\\resources\\static\\MyPlugs\\images\\close.png",
                "fileType": "png"
            },
            {
                "fileName": "top.png",
                "downloadPath": "E:/桌面/test/Spring/src/main/resources/static/MyPlugs/images/top.png",
                "fileSize": "3KB",
                "filePath": "E:\\桌面\\test\\Spring\\src\\main\\resources\\static\\MyPlugs\\images\\top.png",
                "fileType": "png"
            }
        ],
        "js": [
            {
                "fileName": "clipboard.js",
                "downloadPath": "E:/桌面/test/Spring/src/main/resources/static/MyPlugs/js/copy/clipboard.js",
                "fileSize": "23KB",
                "filePath": "E:\\桌面\\test\\Spring\\src\\main\\resources\\static\\MyPlugs\\js\\copy\\clipboard.js",
                "fileType": "js"
            },
            {
                "fileName": "clipboard.min.js",
                "downloadPath": "E:/桌面/test/Spring/src/main/resources/static/MyPlugs/js/copy/clipboard.min.js",
                "fileSize": "10KB",
                "filePath": "E:\\桌面\\test\\Spring\\src\\main\\resources\\static\\MyPlugs\\js\\copy\\clipboard.min.js",
                "fileType": "js"
            },
            {
                "fileName": "jquery.base64.js",
                "downloadPath": "E:/桌面/test/Spring/src/main/resources/static/MyPlugs/js/jquery.base64.js",
                "fileSize": "4KB",
                "filePath": "E:\\桌面\\test\\Spring\\src\\main\\resources\\static\\MyPlugs\\js\\jquery.base64.js",
                "fileType": "js"
            },
            {
                "fileName": "jquery.min.js",
                "downloadPath": "E:/桌面/test/Spring/src/main/resources/static/MyPlugs/js/jquery.min.js",
                "fileSize": "90KB",
                "filePath": "E:\\桌面\\test\\Spring\\src\\main\\resources\\static\\MyPlugs\\js\\jquery.min.js",
                "fileType": "js"
            },
            {
                "fileName": "jquery.tabslet.js",
                "downloadPath": "E:/桌面/test/Spring/src/main/resources/static/MyPlugs/js/jquery.tabslet.js",
                "fileSize": "5KB",
                "filePath": "E:\\桌面\\test\\Spring\\src\\main\\resources\\static\\MyPlugs\\js\\jquery.tabslet.js",
                "fileType": "js"
            },
            {
                "fileName": "md5.js",
                "downloadPath": "E:/桌面/test/Spring/src/main/resources/static/MyPlugs/js/md5.js",
                "fileSize": "8KB",
                "filePath": "E:\\桌面\\test\\Spring\\src\\main\\resources\\static\\MyPlugs\\js\\md5.js",
                "fileType": "js"
            },
            {
                "fileName": "plugOne.js",
                "downloadPath": "E:/桌面/test/Spring/src/main/resources/static/MyPlugs/js/plugOne.js",
                "fileSize": "11KB",
                "filePath": "E:\\桌面\\test\\Spring\\src\\main\\resources\\static\\MyPlugs\\js\\plugOne.js",
                "fileType": "js"
            },
            {
                "fileName": "plugTwo.js",
                "downloadPath": "E:/桌面/test/Spring/src/main/resources/static/MyPlugs/js/plugTwo.js",
                "fileSize": "7KB",
                "filePath": "E:\\桌面\\test\\Spring\\src\\main\\resources\\static\\MyPlugs\\js\\plugTwo.js",
                "fileType": "js"
            },
            {
                "fileName": "jquery.qrcode.min.js",
                "downloadPath": "E:/桌面/test/Spring/src/main/resources/static/MyPlugs/js/qrCode/jquery.qrcode.min.js",
                "fileSize": "18KB",
                "filePath": "E:\\桌面\\test\\Spring\\src\\main\\resources\\static\\MyPlugs\\js\\qrCode\\jquery.qrcode.min.js",
                "fileType": "js"
            },
            {
                "fileName": "template.js",
                "downloadPath": "E:/桌面/test/Spring/src/main/resources/static/MyPlugs/js/template.js",
                "fileSize": "5KB",
                "filePath": "E:\\桌面\\test\\Spring\\src\\main\\resources\\static\\MyPlugs\\js\\template.js",
                "fileType": "js"
            },
            {
                "fileName": "UUID.js",
                "downloadPath": "E:/桌面/test/Spring/src/main/resources/static/MyPlugs/js/UUID.js",
                "fileSize": "4KB",
                "filePath": "E:\\桌面\\test\\Spring\\src\\main\\resources\\static\\MyPlugs\\js\\UUID.js",
                "fileType": "js"
            }
        ],
        "html": [
            {
                "fileName": "template.html",
                "downloadPath": "E:/桌面/test/Spring/src/main/resources/static/MyPlugs/iframe/template.html",
                "fileSize": "2KB",
                "filePath": "E:\\桌面\\test\\Spring\\src\\main\\resources\\static\\MyPlugs\\iframe\\template.html",
                "fileType": "html"
            },
            {
                "fileName": "plugOne.html",
                "downloadPath": "E:/桌面/test/Spring/src/main/resources/static/MyPlugs/plugOne.html",
                "fileSize": "6KB",
                "filePath": "E:\\桌面\\test\\Spring\\src\\main\\resources\\static\\MyPlugs\\plugOne.html",
                "fileType": "html"
            },
            {
                "fileName": "plugTwo.html",
                "downloadPath": "E:/桌面/test/Spring/src/main/resources/static/MyPlugs/plugTwo.html",
                "fileSize": "1KB",
                "filePath": "E:\\桌面\\test\\Spring\\src\\main\\resources\\static\\MyPlugs\\plugTwo.html",
                "fileType": "html"
            }
        ],
        "docx": [
            {
                "fileName": "VPN.docx",
                "downloadPath": "E:/桌面/test/Spring/src/main/resources/static/VPN.docx",
                "fileSize": "621KB",
                "filePath": "E:\\桌面\\test\\Spring\\src\\main\\resources\\static\\VPN.docx",
                "fileType": "docx"
            }
        ]
    }
}
View Code

 

posted @ 2021-09-02 17:01  学习就是进步!  阅读(443)  评论(0)    收藏  举报