如何在iOS上的zip中替换文件?

时间:2013-07-15 07:10:01

标签: iphone ios objective-c zip

我需要使用iOS替换zip上的文件。我尝试了很多没有结果的库。唯一能做到这一点的是zipzap(https://github.com/pixelglow/zipzap),但是这个对我来说没有好处,因为真正做的是再次对文件进行重新压缩,除了这个过程要慢一点我也做了一些事情,将整个文件加载到内存中并使我的应用程序崩溃。

PS:如果这不可能或复杂的方式,我可以解决重命名或删除特定文件。

3 个答案:

答案 0 :(得分:0)

您需要找到一个框架,您可以在其中修改数据的读写方式。然后,您将使用某种形式的mmap来实际读取和写入小块。在NSData和mmap上搜索产生了这个Post,但是你也可以使用posix级别的mmap。 Ps它会比使用纯存储器更慢。

答案 1 :(得分:0)

搞定了! JXZip(https://github.com/JanX2/JXZip)完全符合我的需要,它们链接到libzip(http://www.nih.at/libzip/),这是一个完全配备的库,用于处理ZIP文件,JXZip拥有所有必需的Objective-C包装代码。感谢所有的回复。

答案 2 :(得分:0)

出于存档目的,作为zipzap的作者:

实际上,zipzap完全符合您的要求。如果您替换zip文件中的条目,zipzap将执行更新它所需的最小值:它将跳过在替换条目之前写入所有条目,然后写出条目,然后在替换条目之后写出所有条目而不重新压缩。目前,它确实需要为替换条目后的条目留出足够的内存。