From 2db1aa88e8ab53096a936163d686b90d8e056a99 Mon Sep 17 00:00:00 2001
From: rain <167982779@qq.com>
Date: Wed, 21 Aug 2024 23:18:33 +0800
Subject: [PATCH] 国土对接返回信息加密

---
 src/main/java/com/dji/sample/patches/utils/ZipUtil.java |   32 +++++++++-----------------------
 1 files changed, 9 insertions(+), 23 deletions(-)

diff --git a/src/main/java/com/dji/sample/patches/utils/ZipUtil.java b/src/main/java/com/dji/sample/patches/utils/ZipUtil.java
index ebde8b0..676418d 100644
--- a/src/main/java/com/dji/sample/patches/utils/ZipUtil.java
+++ b/src/main/java/com/dji/sample/patches/utils/ZipUtil.java
@@ -47,11 +47,12 @@
                     // 如果是文件,就先创建一个文件,然后用io流把内容copy过去
                     File targetFile = new File(destDirPath + File.separator + entry.getName());
                     // 保证这个文件的父文件夹必须要存在
+                    File parentFile = targetFile.getParentFile();
+                    if (!parentFile.exists()) {
+                        parentFile.mkdirs();
+                    }
 
                     list.add(destDirPath + entry.getName());
-                    if (!targetFile.getParentFile().exists()) {
-
-                    }
                     targetFile.createNewFile();
                     // 将压缩文件内容写入到这个文件中
                     InputStream is = zipFile.getInputStream(entry);
@@ -81,68 +82,53 @@
         }
         return list;
     }
+
     // 定义一个公共的静态方法zipFolder,用于压缩文件夹
-    // 参数sourceFolderPath是源文件夹的路径,zipFilePath是压缩后的zip文件路径
     public static boolean zipFolder(String sourceFolderPath, String zipFilePath) {
-        // 创建一个File对象,表示源文件夹
         File sourceFile = new File(sourceFolderPath);
         try (
-                // 创建一个FileOutputStream对象,用于向指定的zip文件路径写入数据
                 FileOutputStream fos = new FileOutputStream(zipFilePath);
-                // 创建一个ZipOutputStream对象,用于将压缩数据写入到FileOutputStream中
                 ZipOutputStream zos = new ZipOutputStream(fos)
         ) {
-            // 调用zipFile方法,开始压缩文件
             zipFile(sourceFile, sourceFile.getName(), zos);
             return true;
         } catch (IOException e) {
-            // 如果在压缩过程中出现异常,打印异常堆栈信息
             e.printStackTrace();
         }
         return false;
     }
 
     // 将文件夹整体压缩
-    // 参数fileToZip是需要被压缩的文件或文件夹,fileName是其在zip中的名称,zos是ZipOutputStream对象
     private static void zipFile(File fileToZip, String fileName, ZipOutputStream zos) throws IOException {
-        // 如果fileToZip是一个隐藏文件,则不进行压缩,直接返回
         if (fileToZip.isHidden()) {
             return;
         }
-        // 如果fileToZip是一个目录(文件夹)
         if (fileToZip.isDirectory()) {
-            // 如果fileName以"/"结尾,说明已经是一个目录路径,直接创建一个ZipEntry并关闭它
             if (fileName.endsWith("/")) {
                 zos.putNextEntry(new ZipEntry(fileName));
                 zos.closeEntry();
             } else {
-                // 否则,需要在fileName后加上"/",表示这是一个目录路径,然后创建一个ZipEntry并关闭它
                 zos.putNextEntry(new ZipEntry(fileName + "/"));
                 zos.closeEntry();
             }
-            // 获取fileToZip目录下的所有文件和子目录
             File[] children = fileToZip.listFiles();
             for (File childFile : children) {
-                // 递归调用zipFile方法,压缩子文件和子目录
                 zipFile(childFile, fileName + "/" + childFile.getName(), zos);
             }
             return;
         }
-        // 如果fileToZip不是一个目录,那么它就是一个文件,需要被压缩
-        // 创建一个FileInputStream对象,用于读取fileToZip的内容
         FileInputStream fis = new FileInputStream(fileToZip);
-        // 创建一个ZipEntry对象,表示fileToZip在zip文件中的条目
         ZipEntry zipEntry = new ZipEntry(fileName);
-        // 在ZipOutputStream中开始一个新的zip条目(即将写入一个文件的内容)
         zos.putNextEntry(zipEntry);
-        // 创建一个byte数组,作为缓冲区,用于从fileToZip读取数据并写入到zos中
         byte[] bytes = new byte[1024];
         int length;
-        // 使用循环从fis中读取数据,并写入到zos中,直到没有数据可读(返回-1)为止
         while ((length = fis.read(bytes)) >= 0) {
             zos.write(bytes, 0, length);
         }
-        // 关闭FileInputStream对象,释放资源
         fis.close();
     }
+
+    public static void main(String[] args) {
+        // 调用方法进行测试
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3