如何在没有文件系统的情况下在zip文件(Java中)中添加/修改/删除/合并递归目录?
我是否必须尊重zip条目的顺序?
是的,我知道合并目录是非常复杂的工作..
答案 0 :(得分:2)
如果您需要通过Java核心工作递归地将包含文件的整个目录添加到zip存档,那么您可以使用Mkyong's blog中的好例子。如果您需要将文件附加到现有的zip文件,您应该使用来自@ McDowell评论的链接:Appending files to a zip file with Java
答案 1 :(得分:1)
没有简单的答案,你需要编写一些公平的代码。您不能使用JDK ZipFile类,因为它只支持读取zip文件。
而是使用Commons Compress。看看examples和zip documentation即可开始。
基本上你需要打开一个输入zip文件和一个输出zip文件。读取tern中的每个条目,并决定是将其写入输出,转换和写入,添加新条目还是跳过它。当你到最后关闭两个zip文件时。
处理zip文件时,它并不是真正的递归,因为所有条目都只是一个带有路径和文件名的线性列表。当拉链包含拉链时,递归部分就会出现,并且很容易处理。