iOS Objective-Zip损坏问题

时间:2013-07-25 10:39:42

标签: ios objective-c zip objectivezip

我正在使用 flyingdolphinstudio的Objective-Zip ,这是一个Objective-C压缩库。我使用它来按照this question中给出的答案压缩.txt文件。

对于我的情况,我没有一个循环的数组,所以只有一个文件我有以下内容:

ZipFile *zipFile= [[ZipFile alloc] initWithFileName:zip_file_name mode:ZipFileModeCreate];

NSDictionary *attributes = [[NSFileManager defaultManager]attributesOfItemAtPath:txt_file_name error:&error];
NSDate *Date = [attributes objectForKey:NSFileCreationDate];

NSData *filedata = [NSData dataWithContentsOfFile:txt_file_name];

ZipWriteStream *stream = [zipFile writeFileInZipWithName:txt_file_name fileDate:Date compressionLevel:ZipCompressionLevelBest];
[stream writeData:filedata];
[stream finishedWriting];

[zipFile close];

压缩过程似乎有效,我得到一个带有正确名称非零大小的.zip文件。但是,当我尝试在我的Mac上解压缩它时,它会运行到.cpgz循环。根据{{​​3}}判断,我推测它是因为我的文件在那里的某个地方被破坏了。此外,当我将它上传到服务器并且我们尝试在linux机器上打开它时,它会向我们发送错误消息:

  

$ unzip COCR2_100.zip   档案:COCR2_100.zip     找不到中心目录签名。这个文件不是     一个zip文件,或者它构成一个多部分存档的磁盘。在里面     后一种情况,将在上面找到中心目录和zipfile注释     此存档的最后一个磁盘。   注意:COCR2_100.zip可能是普通的可执行文件,而不是存档   解压缩:在COCR2_100.zip或其中一个中找不到zipfile目录           COCR2_100.zip.zip,找不到COCR2_100.zip.ZIP,期间。

这也表明它已被破坏。

有没有人知道为什么它会被破坏? 谢谢!

1 个答案:

答案 0 :(得分:2)

通过切换到不同的Zip客户端解决了这个问题。已从 Objective-Zip 移至 ZipArchive ,这似乎工作得很好。