1

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];
}

どうすれば修正できますか?

4

1 に答える 1

0

形式が間違っているため、失敗しています。.zipアーカイブは zlib で圧縮されていません。PKZIP を使用しています。PKZIP は、単一のデータ ストリームだけでなく、複数のファイルを含むことが多いやや複雑なアーカイブ形式です。

于 2012-12-14T04:33:26.943 に答える