В качестве альтернативы существует также target-zip , то есть «небольшая библиотека Cocoa / Objective-C, которая упаковывает ZLib и MiniZip объектно-ориентированным дружественным способом».
Записать файл в архив «.zip» просто, выполнив следующий код:
ZipWriteStream *stream = [zipFile writeFileInZipWithName:@"abc.txt" compressionLevel:ZipCompressionLevelBest];
[stream writeData:abcData];
[stream finishedWriting];
Библиотека также позволяет читать содержимое файла ".zip" и перечислять содержащиеся в нем файлы.
Список содержимого файла ".zip" сделан из кода, подобного следующему.
ZipFile *unzipFile = [[ZipFile alloc] initWithFileName:@"test.zip" mode:ZipFileModeUnzip];
NSArray *infos = [unzipFile listFileInZipInfos];
for (FileInZipInfo *info in infos) {
NSLog(@"- %@ %@ %d (%d)", info.name, info.date, info.size, info.level);
// Locate the file in the zip
[unzipFile locateFileInZip:info.name];
// Expand the file in memory
ZipReadStream *read = [unzipFile readCurrentFileInZip];
NSMutableData *data = [[NSMutableData alloc] initWithLength:256];
int bytesRead = [read readDataWithBuffer:data];
[read finishedReading];
}