fix Archiver 最后一个 Entry 为空文件夹时未关闭 Entry

This commit is contained in:
bwcx_jzy 2023-12-05 16:45:33 +08:00
parent c61946650e
commit c359a547cf
No known key found for this signature in database
GPG Key ID: E187D6E9DDDE8C53
2 changed files with 34 additions and 0 deletions

View File

@ -177,6 +177,8 @@ public class StreamArchiver implements Archiver {
for (File childFile : files) {
addInternal(childFile, entryName, filter);
}
} else {
out.closeArchiveEntry();
}
} else {
if (file.isFile()) {

View File

@ -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();
}
}