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" } ] } }

浙公网安备 33010602011771号