我想要做的是在运行时将图像分配给ui元素(想想Winamp风格),但我不知道如何在不存储到磁盘的情况下从zip中读取。或者如何将每个图像分配给ui元素
我正在使用cocoa和Objective c
开发mac答案 0 :(得分:5)
使用objective-c zip (iOS/Mac zlib wrapper)
然后你可以这样做:
ZipFile *unzipFile= [[ZipFile alloc] initWithFileName:@"test.zip" mode:ZipFileModeUnzip];
[unzipFile goToFirstFileInZip];
ZipReadStream *read= [unzipFile readCurrentFileInZip];
NSMutableData *data= [[NSMutableData alloc] initWithLength:256];
int bytesRead= [read readDataWithBuffer:data];
[read finishedReading];
答案 1 :(得分:1)
zipzap版本:
ZZArchive* archive = [ZZArchive archiveWithContentsOfURL:[NSURL fileURLWithPath:@"test.zip"]];
NSData* data = [archive.entries[0] newDataWithError:nil];
或者,如果您正在寻找特定条目:
ZZArchive* archive = [ZZArchive archiveWithContentsOfURL:[NSURL fileURLWithPath:@"test.zip"]];
NSData* data = nil;
for (ZZArchiveEntry* entry in archive.entries)
if ([entry.fileName isEqualToString:@"test.txt"])
{
data = [entry newDataWithError:nil];
break;
}
扫描这样的文件非常理想。扫描仅使用zip中心目录,并且实际上不会在-[entry newDataWithError:]
之前提取数据。