使用 Minizip API 从 Zip 存档中删除 Zip 条目

Posted

技术标签:

【中文标题】使用 Minizip API 从 Zip 存档中删除 Zip 条目【英文标题】:Deleting Zip Entry from Zip archive using Minizip API 【发布时间】:2013-08-07 05:40:30 【问题描述】:

我正在使用 Minizip API 将文件压缩和解压缩到我的存档。我需要在解压缩后立即从 zip 中删除 zip 条目。

如果 zip 存档有多个 zip 条目,我可以在解压缩后立即删除特定的 zip 条目,然后能够使用剩余的 zip 条目压缩存档。我可以使用临时 zip 来实现这一点。

但是当我在 zip 存档中有一个文件时,我只能在完全提取后删除 zip....对于这种情况是否有优化方法,我可以分块提取和删除 zip 条目. minizip 中没有可直接删除的 API,我使用的是原始写入和读取。

提前致谢, JP

【问题讨论】:

【参考方案1】:

不,没有办法删除 ZIP 存档中文件的一部分,除非提取整个文件并存档您不想要的部分。 (这在这里没有意义,因为您已经在尝试提取文件!)

【讨论】:

我同意,我的限制是内存,所以我不想在提取结束之前保留 zip 存档。对于存档中的一个文件,除了等到提取结束并删除 zip 之外,别无选择。是否有任何其他 zip 库可以帮助实现这一目标?

以上是关于使用 Minizip API 从 Zip 存档中删除 Zip 条目的主要内容,如果未能解决你的问题,请参考以下文章

使用 MiniZip 库读取 omni.jar 存档文件

在 Windows 8 上解压缩存档

Zlib和Minizip - 如何将新目录添加到.zip文件

重复符号错误:带有 Objective-Zip、ZLib、MiniZip 的 Flurry SDK 5.0.0

使用 Haskell 的 zip-conduit 从 zip 存档中的文件中读取行

如何使用 Sharpcompress .net 从 ZIP 存档中删除单个条目