如何将目录(文件树)添加到zip中?

时间:2013-07-03 11:03:48

标签: java zip

如何在没有文件系统的情况下在zip文件(Java中)中添加/修改/删除/合并递归目录?

我是否必须尊重zip条目的顺序?

是的,我知道合并目录是非常复杂的工作..

2 个答案:

答案 0 :(得分:2)

如果您需要通过Java核心工作递归地将包含文件的整个目录添加到zip存档,那么您可以使用Mkyong's blog中的好例子。如果您需要将文件附加到现有的zip文件,您应该使用来自@ McDowell评论的链接:Appending files to a zip file with Java

答案 1 :(得分:1)

没有简单的答案,你需要编写一些公平的代码。您不能使用JDK ZipFile类,因为它只支持读取zip文件。

而是使用Commons Compress。看看exampleszip documentation即可开始。

基本上你需要打开一个输入zip文件和一个输出zip文件。读取tern中的每个条目,并决定是将其写入输出,转换和写入,添加新条目还是跳过它。当你到最后关闭两个zip文件时。

处理zip文件时,它并不是真正的递归,因为所有条目都只是一个带有路径和文件名的线性列表。当拉链包含拉链时,递归部分就会出现,并且很容易处理。