2012-07-18 157 views
3

我正在使用Zlib的Minizip程序。我正在尝试将文件添加到当前的zip文件中。我发现我可以使用该函数附加zip文件:minizip追加到文件

extern zipFile ZEXPORT zipOpen64 OF((const void * pathname,int append));

附加设置为2.但是,这不会覆盖zip文件内的文件,而只是将文件添加到zip的末尾,而不管它们是否已经存在。有没有什么办法解决这一问题?我想要选择只替换较旧的文件和/或覆盖所有文件。

+0

作为一项基本措施,您可以缓存zip的文件条目名称。当您尝试向zip添加新文件时,您可以看到它的文件名是否可以在缓存中找到,只有在未找到文件名时才添加文件。显然,每次新文件实际添加时都需要更新缓存。 – 2013-04-19 14:20:06

回答

1

minizip库当前不支持将文件添加到zip归档文件以外的其他任何内容。它不支持删除或更新存档中的文件。

这从minizip网报价可能会帮助您:

伊万A. Krestinin写的如何删除zip压缩包文件的small example ...

您可以结合删除操作通过添加操作来实现归档文件替换。上面示例代码的缺点是它需要在磁盘上创建一个临时zip文件。

+0

非常感谢您的帮助我能够脱离示例并让我的程序正确添加文件。 – Megan 2012-08-14 17:24:51