我正在使用 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,期间。
这也表明它已被破坏。
有没有人知道为什么它会被破坏? 谢谢!
答案 0 :(得分:2)
通过切换到不同的Zip客户端解决了这个问题。已从 Objective-Zip 移至 ZipArchive ,这似乎工作得很好。