文件路径(xxx/xxx/xx/xxx.xx)转二维数组(id,parent_id)
先整理所有文件夹
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。for (String path : values) {
String[] split = path.split("/");
String tmp = "";
for (int i = 0; i < split.length - 1; i++) {
tmp += split[i] + "/";
paths.add(tmp);
}
}
整理文件夹路径,文件夹节点的Map
Map<String, FileSystemEntity> pathNodeMap = new HashMap<>();
for (String path : paths) {
if (!pathNodeMap.containsKey(path)) {
String[] split = path.split("/");
if (split.length == 1) {
pathNodeMap.put(path, getFolderEntiy(GeneralUtility.getUUID(), parentId, split[0], fileUserName));
} else {
String parentNodeId = null;
String pathTmp = "";
for (int i = 0; i < split.length; i++) {
pathTmp += split[i] + "/";
if (parentNodeId == null) {
if (pathNodeMap.containsKey(pathTmp)) {
parentNodeId = pathNodeMap.get(pathTmp).getId();
} else {
String uuid = GeneralUtility.getUUID();
pathNodeMap.put(pathTmp, getFolderEntiy(uuid, parentId, split[i], fileUserName));
parentNodeId = uuid;
}
} else {
if (pathNodeMap.containsKey(pathTmp)) {
FileSystemEntity fileNode = pathNodeMap.get(pathTmp);
fileNode.setParentId(parentNodeId);
pathNodeMap.put(pathTmp, fileNode);
parentNodeId = fileNode.getId();
} else {
String uuid = GeneralUtility.getUUID();
pathNodeMap.put(pathTmp, getFolderEntiy(uuid, parentNodeId, split[i], fileUserName));
parentNodeId = uuid;
}
}
}
}
}
}
遍历所有文件,通过路径判断在哪个文件夹下。

更多精彩