先整理所有文件夹

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;
}
}
}
}
}
}

遍历所有文件,通过路径判断在哪个文件夹下。
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄