在Objective-C中,如何将ZIP存档中打包的几个文件的内容读入NSString变量

时间:2013-04-18 13:10:31

标签: objective-c zip zlib compression

在Objective-C(适用于iOS)中,有没有办法将ZIP存档中的文件读入内存?

因此,ZIP中的每个文件都是一个文本文件。我需要做的是遍历ZIP存档中的文件,直到找到我需要的名称,然后将其内容(即文本数据)读取到NSString变量。

这可能与zlib有关吗?我无法在这个库的标题中看到任何执行这样的任务,比如读取zip存档中的文件。

我在interent上检查的其他库似乎只是解压缩到一个目录,但是,我需要的是将zip存档中的文件内容只读到NSString变量。

由于

2 个答案:

答案 0 :(得分:1)

您可以使用我的zipzap库快速完成此操作:

ZZArchive* archive = [ZZArchive archiveWithContentsOfURL:zipFileURL];
NSString* foundContent = nil;
for (ZZArchiveEntry* entry in archive.entries)
  if ([entry.fileName isEqualToString:fileNameToFind])
    foundContent = [[NSString alloc] initWithData:entry.data
                                         encoding:NSUTF8StringEncoding];

答案 1 :(得分:0)

你可以使用很多库。谷歌是你的朋友。 libziplibarchive只有两个。