From a38d2c30192f774c674c7a0ed5f9f370b921918c Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期二, 27 二月 2024 14:48:17 +0800 Subject: [PATCH] 修改路径创建-2 --- src/main/java/com/lf/server/service/all/BaseUploadService.java | 54 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 47 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/lf/server/service/all/BaseUploadService.java b/src/main/java/com/lf/server/service/all/BaseUploadService.java index a868900..02f6dd3 100644 --- a/src/main/java/com/lf/server/service/all/BaseUploadService.java +++ b/src/main/java/com/lf/server/service/all/BaseUploadService.java @@ -526,7 +526,7 @@ /** * 鑾峰彇OSGB鏂囦欢鏄犲皠 */ - private MetaFileEntity getOsgbMapper(File f, MetaFileEntity meta, int start) { + private MetaFileEntity getOsgbMapper(File f, MetaFileEntity meta, int start) { String fileName = FileHelper.getFileName(f.getPath()); List<String> files = new ArrayList<>(); @@ -553,20 +553,60 @@ private void setDircode(List<MetaFileEntity> list, DirEntity dir) { List<DirEntity> dirs = dirService.selectRecursiveById(dir.getId()); for (MetaFileEntity mfe : list) { - String code= dir.getCode(); - String fileName = mfe.getName().toLowerCase(); String filePath = mfe.getPath().toLowerCase().replace("/", "\\"); - for(DirEntity de : dirs){ - if (filePath.contains(de.getFullName().toLowerCase() + "\\" + fileName)) { - code=de.getCode(); - break; + String fileName = mfe.getName().toLowerCase(); + + String code = findDirByPath(dirs, filePath, fileName); + if (StringHelper.isEmpty(code)) { + DirEntity baseDir = findBaseDirByPath(dirs, filePath); + if (null != baseDir) { + createDirByPath(baseDir, mfe.getPath()); + dirs = dirService.selectRecursiveById(dir.getId()); + code = findDirByPath(dirs, filePath, fileName); } } + code = StringHelper.isEmpty(code) ? dir.getCode() : code; mfe.setDircode(code); } } /** + * 鏍规嵁璺緞鏌ユ壘鐩綍 + */ + private String findDirByPath(List<DirEntity> dirs, String filePath,String fileName) { + for (DirEntity de : dirs) { + if (filePath.contains(de.getFullName().toLowerCase() + "\\" + fileName)) { + return de.getCode(); + } + } + + return null; + } + + /** + * 鏍规嵁璺緞鏌ユ壘鐖剁洰褰� + */ + private DirEntity findBaseDirByPath(List<DirEntity> dirs, String filePath) { + for (DirEntity de : dirs) { + if (StringHelper.isEmpty(de.getCode()) || de.getCode().length() != StaticData.FOUR) { + continue; + } + if (filePath.contains(de.getFullName().toLowerCase() + "\\")) { + return de; + } + } + + return null; + } + + /** + * 鏍规嵁璺緞鍒涘缓鐩綍 + */ + private void createDirByPath(DirEntity baseDir, String filePath) { + + } + + /** * 鑾峰彇鍙傛暟 * * Enumeration<String> headers = req.getHeaderNames(); * Enumeration<String> attributes = req.getAttributeNames(); -- Gitblit v1.9.3