我在我的 iOS 应用程序中使用ObjectiveZip
库(它是 的包装器)。MiniZip
我的应用程序将 .zip 存档发送到服务器,由版主手动处理。这是我创建档案的代码:
NSString * zipfile = [Result zipfilePathWithResult:self];
ZipFile * zf = [[ZipFile alloc] initWithFileName:zipfile mode:ZipFileModeCreate];
ZipWriteStream * zws = [zf writeFileInZipWithName:@"report.xml" compressionLevel:ZipCompressionLevelNone];
[zws writeData:[xml dataUsingEncoding:NSUTF8StringEncoding]];
[zws finishedWriting];
for (NSString * name in mediaFiles)
{
ZipWriteStream * zws = [zf writeFileInZipWithName:name compressionLevel:ZipCompressionLevelNone];
[zws writeData:[files objectForKey:name]];
[zws finishedWriting];
}
[zf close];
不幸的是,默认情况下 OS X ArchiveUtility 无法正确处理这些存档:它总是将我的文件解压缩到 zip.cpgz 中,而不管存档的实际内容如何(通常是一个 .xml 文件和一些 .jpg 文件)。
但是,OS X 和 Windows 上的其他一些应用程序能够正确打开我的档案,因此档案实际上并没有被破坏。
有没有办法让 ObjectiveZip 与 ArchiveUtility 一起工作?或者,也许您可以建议任何其他用于创建可以执行此操作的 .zip 文件的 Objective-c 库。提前致谢!