[使用ASIHTTPRequest,我下载了一个zip文件,其中包含一个包含多个音频文件的文件夹。我试图用SSZipArchive
和ZipArchive
来解压缩文件,它们都基于minizip
。
[编译代码时,出现此错误:Undefined symbols for architecture i386: "_OBJC_CLASS_$_ZipArchive", referenced from: objc-class-ref in AppDelegate.o
。
如何在iOS中解压缩此文件?
我过去曾成功使用ZipArchive。它相当轻巧,易于使用,支持密码保护,ZIP中的多个文件以及压缩和解压缩。
基本用法是:
NSString *filepath = [[NSBundle mainBundle] pathForResource:@"ZipFileName" ofType:@"zip"];
ZipArchive *zipArchive = [[ZipArchive alloc] init];
[zipArchive UnzipOpenFile:filepath Password:@"xxxxxx"];
[zipArchive UnzipFileTo:{pathToDirectory} overWrite:YES];
[zipArchive UnzipCloseFile];
[zipArchive release];
有关此程序包here的更多示例
我也在某些项目中尝试过SSZipArchive。下面的行将解压缩您的zip文件。
[SSZipArchive unzipFileAtPath:path toDestination:destination];
[首先,在iOS 7中,Apple引入了本地压缩/解压缩文件的功能。您还可以选择通过邮件,消息,空投和“打开方式”发送zip文件。关键是:iOS必须支持zip文件有些支持,有些则不支持。第一步:确定文件是否受支持。通过简单检查新保存的文件来执行此操作。尝试打开它。如果它停留在“等待...”中,则不支持[[可能。如果是这种情况,请尝试使用其他库或使用解决方法。
现在,以编程方式执行此操作[[当前需要,使用第三方库来保存zip文件并提取它们。这是不理想的,因为许多人/公司避免使用它们。话虽如此,答案被标记为正确,ZipArchive是一个出色的第三方工具,尤其是因为它现在支持Swift。我建议使用它,直到Apple引入本机库为止。[[NSFileManager defaultManager] copyItemAtPath:[NSURL URLForCachesDirectoryWithAppendedPath:@"ZIP_FILE.zip/Contents/Test.m4a"].path
toPath:[NSURL URLForCachesDirectoryWithAppendedPath:@"Test.m4a"].path
error:nil];
[您甚至有可能甚至可以创建目录列表来解压缩内容未知的文件。虽然不知道受密码保护的ZIP文件。