JAVA 获取某个盘符下所有文件夹及其文件路径,并返回标准JSON字符串
来源:互联网 发布:excel2016编程 编辑:程序博客网 时间:2024/06/06 09:46
JAVA 获取某个盘符下所有文件夹及其文件路径,并返回标准JSON字符串
本文借鉴网络上的写法,由于仓促忘记了打开的是哪个网页,希望不要介意。
拿过来代码,发现逻辑虽然通,但由于json字符串拼装错误,导致返回的字符串并不正确,所以拿来优化了一下:
DirectoryUtils dir =new DirectoryUtils();String json=dir.scan(rootPath)+"}";
package com.googosoft.util;import com.alibaba.fastjson.JSON;import java.io.File;import java.util.Arrays;public class DirectoryUtils { StringBuilder buf=new StringBuilder(); public String scan(String path) { File f = new File(path); if (f.isDirectory()) { scan(new File(path)); buf.delete(buf.length() - 2, buf.length()); } else { System.out.format("{\"name\" : \"%s\"}", f.getName()); } return buf.toString(); } private void scan(File f) { if (f.isDirectory()) { buf.append("{").append("\"name\" : \"").append(f.getName()).append("\",").append("\"filePath\":\"\",").append("\"isDir\":\"0\",").append("\"children\":["); Arrays.asList(f.listFiles()).forEach(this::scan); if(buf.toString().endsWith("\"children\":[")) buf.append("{\"name\":\"暂无文件\",\"path\":\"\",\"isDir\":\"0\"},"); buf.delete(buf.length() - 2, buf.length()); buf.append("}").append("]").append("},"); } else buf.append("{").append("\"name\" : \"").append(f.getName()).append("\"").append(",\"filePath\":").append(JSON.toJSONString(f.getAbsolutePath())).append(",\"isDir\":\"1\"").append("},"); }}
{ "name": "fileupload", "children": [ { "name": "文件夹A", "children": [ { "name": "0001", "children": [ { "name": "2017-09-29", "children": [ { "name": "crash-2017-09-29-1506665339302.log", "path": "D: \\IdeaTomcat\\apache-tomcat-7.0.43-PB\\fileupload\\文件夹A\\0001\\2017-09-29\\crash-2017-09-29-1506665339302.log" } ] } ] } ] }, { "name": "文件夹B", "children": [ { "name": "0001", "children": [ { "name": "2017-09-29", "children": [] } ] } ] } ]}
如果结合LayUi tree,对象类是这样的
public class Directory { private String name;//文件夹名 private List<String> children;//子文件夹 private String path;//文件路径 private String isDir;//是否是文件夹 public String getName() { return name; } public void setName(String name) { this.name = name; } public List<String> getChildren() { return children; } public void setChildren(List<String> children) { this.children = children; } public String getPath() { return path; } public void setPath(String path) { this.path = path; } public String getIsDir() { return isDir; } public void setIsDir(String isDir) { this.isDir = isDir; }}
前台在需要的地方,只需要引用这样一句话就OK
${Directory.children}
效果图
阅读全文
0 0
- JAVA 获取某个盘符下所有文件夹及其文件路径,并返回标准JSON字符串
- java获取某个文件夹下的所有文件、删除文件
- Java-读取某个目录下所有文件、文件夹和3种从文件路径中获取文件名的方法
- java获取某个文件夹内所有文件的名称
- 返回某个文件夹下所有的文件
- 获取一个路径下的所有文件及其子文件,子文件夹下的子文件....
- Java遍历文件夹下所有文件并替换指定字符串
- STL---获取某个文件夹下的所有txt文件,并进行处理
- Java 根据某个文件名,获取相对应的文件夹,然后取文件夹中所有文件
- iOS小技巧 - 获取指定文件夹下的所有相对路径(包括子文件夹路径),并实现指定文件夹下的所有文件的全部移动
- java读取某个文件夹下所有文件与文件夹
- Java web项目如何获取某个文件夹下面的文件路径 绝对路径 ?
- 批量替换文件夹下所有文件的某个字符串
- iOS获取文件夹下某个后缀的所有文件
- java 读取某个文件夹下的所有文件夹和文件, 返回所有文件名 (转)
- java 读取某个文件夹下的所有文件夹和文件, 返回所有文件名
- Java IO遍历文件夹,并返回所有后缀名为.dcm的文件列表
- 【Java】移动文件夹及其所有子文件与子文件夹
- BLL、DAL、IDAL、MODEL、DBUtility、DALFactory层级 (
- oracle blob过滤
- qt中数据类型的互相转换
- 简单明了区分escape、encodeURI和encodeURIComponent
- hashmap解析二
- JAVA 获取某个盘符下所有文件夹及其文件路径,并返回标准JSON字符串
- TCP协议滑动窗口与流量控制
- Jquery如何选取元素及其所有子元素?jquery选择器大全
- [剑指offer]面试题3:二维数组中的查找
- 使用字面量的方法创建一个dictionary报错:libc++abi.dylib: terminating with uncaught exception of type NSException
- 浮点数的陷阱
- 2017-09-29 DBA日记,oracle下insert产生row lock contention事件记录
- 人工智能时代 大数据如何解决安防监控“痛点”?
- ofbiz学习——推广/宣传产品展示