我需要从我的java程序创建一个zip文件。
我需要一个能够创建zip文件并在其中存储文本和文件条目的库,最重要的是我需要能够将整个目录存储在其中(具有多个其他目录级别的目录)每个都有一些文件)。
你能建议我一个吗?
答案 0 :(得分:21)
查看Zip4j - http://www.lingala.net/zip4j/
我今天遇到了这个问题,我拒绝做JDK希望我们这样做的低级垃圾。希望这个小图书馆能够运作
答案 1 :(得分:9)
用于处理Zip文件(即压缩)的困难部分的库内置于Java SE(java.util.zip
):
http://download.oracle.com/javase/1.5.0/docs/api/java/util/zip/package-summary.html
对于更高级别的函数, 难以编写某些函数来递归遍历目录并将文件复制到ZipOutputStream
- 可能少于50行代码左右。
http://www.javareference.com/jrexamples/viewexample.jsp?id=108有一个很好的例子 - 单个文件需要一些工作。
答案 2 :(得分:4)
在这些领域,通常需要考虑Apache(或者更具体地说:Apache Commons)。我发现了这个:http://commons.apache.org/compress/zip.html(虽然我没有检查过。)
答案 3 :(得分:4)
您可以查看的另一个选项是 zt-zip ,可从Maven中心和项目页面https://github.com/zeroturnaround/zt-zip
获取它具有标准的打包和解包功能(在流和文件系统上)+许多辅助方法来测试存档中的文件或添加/删除条目。
答案 4 :(得分:3)
有一个着名的7zip库的Java绑定,您可以在http://sevenzipjbind.sourceforge.net/
查看答案 5 :(得分:1)
easyzip4j
从github下载。
https://github.com/willwarren/easyzip4j/downloads
<强>用法强>
EasyZip.zip("./folderToZip", "./myZipFile.zip");
OR
EasyZip.zip("./folderToZip", "./myZipFile.zip",
new EasyZipParameters().setZipFolderContentsNotFolder(true));
(也包含在自述文件https://github.com/willwarren/easyzip4j/blob/master/README.md)
中这是一个以maven为基础的项目 取决于commons-io和log4j。随意编辑!