我与iOS合作,我想使用zlib将.zip文件解压缩到内存,但它总是返回代码-3
的错误。
我的代码如下:
NSData *sData = [[NSFileManager defaultManager] contentsAtPath:[[NSBundle mainBundle] pathForResource:@"mactxt" ofType:@"zip"]];
NSData *srcData = [[NSFileManager defaultManager] contentsAtPath:[[NSBundle mainBundle] pathForResource:@"mactxt" ofType:@"rtf"]];
unsigned int l = srcData.length;
unsigned long srcLen = sData.length;
unsigned long dstLen = l;
void * dest =malloc(dstLen);
memset(dest, 0x00, dstLen);
const void * src =[sData bytes];
int a = uncompress(dest, &dstLen, src, srcLen);
if (a==0) {
NSData *data = [[NSData alloc] initWithBytes:dest length:dstLen];
[data writeToFile:[self dataFilePath:@"matxt.rtf"] atomically:YES];
}
我该如何解决?
答案 0 :(得分:0)
它失败了,因为它的格式错误。 .zip
档案不是用zlib压缩的 - 他们使用PKZIP,这是一种有点复杂的档案格式,通常包含多个文件,而不仅仅是一个数据流。