Java库用于处理Zip文件

12

我需要从我的Java程序创建一个zip文件。

我需要一个库,可以创建zip文件,并将文本和文件条目存储在其中,最重要的是,我需要它能够将整个目录存储在其中(一个包含多个其他目录层级的目录,每个层级中都有一些文件)。

你能建议我一个吗?

6个回答

24

看看Zip4j - http://www.lingala.net/zip4j/

今天我遇到了这个问题,我不想做JDK要求我们做的低级别的东西。希望这个小库能够解决问题。


2
它甚至可以通过Maven获取:http://mvnrepository.com/artifact/net.lingala.zip4j/zip4j - ripper234

9

但是java.util.zip无法保存整个目录,我需要自己编写代码! - Ariyan
如果要实现这个功能,你需要遍历目录结构并将内容自己转储到ZipOutputStream中。 - Alnitak
顺便说一下,那个例子有问题。它存在一些主要的编译问题(例如没有正确地迭代目录中的文件)。 - stevebot
这个答案有一个非常好的实现: https://dev59.com/IXM_5IYBdhLWcg3wZSI6#1399432 - Juan Calero

4

在这样的领域,通常需要考虑Apache(或者更具体地说:Apache Commons)的一些内容。我找到了这个链接:http://commons.apache.org/compress/zip.html(不过我还没有检查过它)。


它似乎只能制作“更好”的zip文件,似乎没有包括目录遍历或任何实际将磁盘文件复制到zip文件中的内容。 - Alnitak

4

你可以尝试查看的另一个选项是 zt-zip,它可以从Maven中央和项目页面https://github.com/zeroturnaround/zt-zip获取。

它具有标准的打包和解压功能(在流和文件系统上),并且还有许多辅助方法来测试存档文件中的文件或添加/删除条目。


太多依赖了……不过代码写得不错。 - marcolopes
目前唯一的依赖项是org.slf4j.slf4j-api。 - toomasr

3

6
根据个人经验,7zip库的Java绑定可以处理Zip、GZip、RAR和其他格式的读写操作。 - Ian Durkan

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接