我发现了几个库(LiteZip和ZipArchive),允许在iPhone上解压文件。但他们都需要输入作为文件。是否有一个库允许直接解压NSData包含zip存档数据而不写入临时文件?
我试着采用上面提到的库,但迄今为止没有成功。解压NSData不带临时文件
回答
据我所知,zip格式分别存储文件,每个存储的文件使用压缩算法(通常是DEFLATE算法)进行压缩。
如果你只在解压缩的数据感兴趣这是使用deflate算法这zlib addition to NSData从Google Toolbox For Mac
它不需要临时文件,你可以使用压缩。
由于zip压缩文件中的文件是单独压缩存储的,并且在原始文件夹层次结构中,应该可以通过传递路径(相对于zip压缩文件的根目录)来提取NSData对象,对吗? – avocade 2010-06-08 00:15:33
在this answer到this question,我指出了CocoaDev wiki category on NSData,它增加了对该类的zip/unzip支持。这会让你在记忆中完全做到这一点。
这个类别增加了gzip/zlib支持,而不是实际的zip格式(顺便说一下,它不能解压缩到一个单独的NSData对象,它不能代表文件/目录结构)。 – 2009-11-13 14:02:39
- 1. 解压缩NSData
- 2. 解压在PowerShell中不清除临时文件
- 3. 解析带有文件内容的NSData
- 4. 使用ZipArchive解压缩NSData
- 5. 解压缩zlib编码nsdata
- 6. python:从zip中打开文件,无需临时解压缩
- 7. FileNotFoundException解压文件时
- 8. 如何定义ClickOnce将文件解压到的临时文件夹?
- 9. tomcat不解压war文件
- 10. 解压文件
- 11. 解压的NSData用客观的拉链
- 12. 如何解压缩的zlib的NSData
- 13. 压缩文件未解压
- 14. 下载该压缩文件时自动解压缩文件
- 15. 在c#中使用zlib压缩文件时解压文件
- 16. 解析临时文件与引入nokogiri
- 17. 如何解压/解压缩* .z文件
- 18. 如何解压/解压缩文件
- 19. 创建不带压缩的zip文件
- 20. 解压缩文件,但不改变文件的时间
- 21. 如何压缩文件时不压缩
- 22. 解压文件.fsd
- 23. 解压缩文件
- 24. 解压* .Z文件
- 25. 解压缩文件
- 26. jquery临时解绑事件
- 27. 阅读时解压缩文件
- 28. IndexOutOfBoundsException解压缩耳文件时
- 29. 解压缩文件并读取解压缩文件
- 30. 文本区域不同时ZIP解压
为什么你不想使用临时文件?你想要什么形式的未压缩数据?你的NSData中有一些实际的压缩数据吗? – 2009-11-13 12:29:46
我有加密的zip文件。我在内存中解密到NSData,然后直接解压。 – Vladimir 2009-11-13 12:44:01
我曾经写过你需要的东西(除了加密支持)。这很容易,几个小时后就可以实现。不幸的是,我再也无法访问代码。那么为什么不从头开始编写一个(使用zlib)呢? ZIP文件是一种相当简单的文件格式。 – Codo 2010-08-22 14:32:02