文件路径(xxx/xxx/xx/xxx.xx)转二维数组(id,parent_id)

 

先整理所有文件夹

values = ["aaa/bb/dd.txt","aaa/bb/cc.txt","aaa/aa.txt"....]

 

//整理所有路径
Set<String> paths = new HashSet<>(); 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; } } } } } }

 

遍历所有文件,通过路径判断在哪个文件夹下。
posted @ 2019-04-23 14:08  不吃柠檬  阅读(479)  评论(0编辑  收藏  举报