From c359a547cf2dd7cbe73320dc94bf0db9a3a79053 Mon Sep 17 00:00:00 2001 From: bwcx_jzy Date: Tue, 5 Dec 2023 16:45:33 +0800 Subject: [PATCH] =?UTF-8?q?fix=20Archiver=20=E6=9C=80=E5=90=8E=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=20Entry=20=E4=B8=BA=E7=A9=BA=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=A4=B9=E6=97=B6=E6=9C=AA=E5=85=B3=E9=97=AD=20Entry?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../compress/archiver/StreamArchiver.java | 2 ++ .../hutool/extra/compress/ArchiverTest.java | 32 +++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/hutool-extra/src/main/java/cn/hutool/extra/compress/archiver/StreamArchiver.java b/hutool-extra/src/main/java/cn/hutool/extra/compress/archiver/StreamArchiver.java index 5372b7381..99d5e38b1 100755 --- a/hutool-extra/src/main/java/cn/hutool/extra/compress/archiver/StreamArchiver.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/compress/archiver/StreamArchiver.java @@ -177,6 +177,8 @@ public class StreamArchiver implements Archiver { for (File childFile : files) { addInternal(childFile, entryName, filter); } + } else { + out.closeArchiveEntry(); } } else { if (file.isFile()) { diff --git a/hutool-extra/src/test/java/cn/hutool/extra/compress/ArchiverTest.java b/hutool-extra/src/test/java/cn/hutool/extra/compress/ArchiverTest.java index 8ba8d499a..3175efc3e 100644 --- a/hutool-extra/src/test/java/cn/hutool/extra/compress/ArchiverTest.java +++ b/hutool-extra/src/test/java/cn/hutool/extra/compress/ArchiverTest.java @@ -72,4 +72,36 @@ public class ArchiverTest { }) .finish().close(); } + + /** + * Add: D:\disk-all + * Add: D:\disk-all\els-app + * Add: D:\disk-all\els-app\db-backup + * Add: D:\disk-all\els-app\新建 文本文档.txt + * Add: D:\disk-all\新建 文本文档.txt + * Add: D:\disk-all\新建文件夹 + */ + @Test + @Ignore + public void emptyTest(){ + final File file = FileUtil.file("d:/disk-all.tgz"); + CompressUtil.createArchiver(CharsetUtil.CHARSET_UTF_8, "tgz", file) + .add(FileUtil.file("D:\\disk-all"), (f)->{ + Console.log("Add: {}", f.getPath()); + return true; + }) + .finish().close(); + } + + @Test + @Ignore + public void emptyZTest(){ + final File file = FileUtil.file("d:/disk-all.7z"); + CompressUtil.createArchiver(CharsetUtil.CHARSET_UTF_8, "7z", file) + .add(FileUtil.file("D:\\disk-all"), (f)->{ + Console.log("Add: {}", f.getPath()); + return true; + }) + .finish().close(); + } }