Przeglądaj źródła

兼容0层级压缩

chenendian 2 miesięcy temu
rodzic
commit
71c0b1849a

+ 12 - 5
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/service/cadastre/impl/CadastreManageServiceImpl.java

@@ -216,19 +216,26 @@ public class CadastreManageServiceImpl implements CadastreManageService {
                     throw new ServiceException("解压文件失败:文件不存在,");
                 }
 
-                //这里解压文件名称作为文件名
-                String fileName = currentFilePath.getFileName().toString();
-                theFileName = fileName.substring(0, fileName.lastIndexOf('.'));
+
 
                 //解压成功文件保存
                 if (StringUtils.isNotBlank(extractRes)) {
                     String unZipPath = extractRes;
-                    String innerExtractFileName =  FileExtractUtil.getFileDirName(extractRes);
+                    String innerExtractFileName =  FileExtractUtil.getInnerFileByDirName(unZipPath);
                     // 如果解压后的文件夹名称不为空,则使用解压后的文件夹名称作为文件名
                     if(StringUtils.isNotBlank(innerExtractFileName)){
                         theFileName =   innerExtractFileName;
                     }else {
-                        //如果当前压缩文件最终一级则
+
+                        String suffix = ".gdb"; //需要后缀为.gdb才能被jar包识别为矢量数据进行读取
+                        //这里解压文件名称作为文件名
+                        String fileName = currentFilePath.getFileName().toString();
+                        theFileName = fileName.substring(0, fileName.lastIndexOf('.'));
+                        theFileName += suffix;
+
+                        //如果当前压缩文件为gdb文件,则解压后的文件夹名称需要修改为.gdb结尾
+                        FileExtractUtil.modifyDirName(unZipPath,unZipPath + suffix);
+                        unZipPath += suffix;
                         unZipPath = unZipPath.replace(theFileName, "");
                         if(StringUtils.isNotBlank(unZipPath) && (unZipPath.endsWith("/")||unZipPath.endsWith("\\"))){
                             unZipPath = unZipPath.substring(0, unZipPath.length() - 1);

+ 17 - 1
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/utils/FileExtractUtil.java

@@ -273,7 +273,7 @@ public class FileExtractUtil {
      * @param parentPath 文件路径
      * @return String
      */
-    public static String getFileDirName(String parentPath) {
+    public static String getInnerFileByDirName(String parentPath) {
         String fileDirName = "";
         File dir = new File(parentPath);
         if (!dir.exists() || !dir.isDirectory()) {
@@ -287,5 +287,21 @@ public class FileExtractUtil {
     }
 
 
+    /**
+     * 修改文件夹名称
+     * @param oldDirName
+     * @param newDirName
+     * @return
+     */
+    public static Boolean modifyDirName(String oldDirName,String newDirName) {
+        File oldDirNameFile = new File(oldDirName);
+        File newDirNameFile = new File(newDirName);
+        if (!oldDirNameFile.exists() || !oldDirNameFile.isDirectory()) {
+            return false;
+        }
+        return  oldDirNameFile.renameTo(newDirNameFile);
+    }
+
+
 
 }