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