在iOS中解压缩下载的文件

问题描述 投票:27回答:3

[使用ASIHTTPRequest,我下载了一个zip文件,其中包含一个包含多个音频文件的文件夹。我试图用SSZipArchiveZipArchive来解压缩文件,它们都基于minizip

[编译代码时,出现此错误:Undefined symbols for architecture i386: "_OBJC_CLASS_$_ZipArchive", referenced from: objc-class-ref in AppDelegate.o

如何在iOS中解压缩此文件?

objective-c ios zip unzip
3个回答
49
投票

我过去曾成功使用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];

2
投票

[首先,在iOS 7中,Apple引入了本地压缩/解压缩文件的功能。您还可以选择通过邮件,消息,空投和“打开方式”发送zip文件。关键是:iOS必须支持zip文件有些支持,有些则不支持。第一步:确定文件是否受支持。通过简单检查新保存的文件来执行此操作。尝试打开它。如果它停留在“等待...”中,则不支持[[可能。如果是这种情况,请尝试使用其他库或使用解决方法。

现在,以编程方式执行此操作[[当前需要,使用第三方库来保存zip文件并提取它们。这是不理想的,因为许多人/公司避免使用它们。话虽如此,答案被标记为正确,ZipArchive是一个出色的第三方工具,尤其是因为它现在支持Swift。我建议使用它,直到Apple引入本机库为止。

-5
投票
[[NSFileManager defaultManager] copyItemAtPath:[NSURL URLForCachesDirectoryWithAppendedPath:@"ZIP_FILE.zip/Contents/Test.m4a"].path toPath:[NSURL URLForCachesDirectoryWithAppendedPath:@"Test.m4a"].path error:nil];

[您甚至有可能甚至可以创建目录列表来解压缩内容未知的文件。虽然不知道受密码保护的ZIP文件。

© www.soinside.com 2019 - 2024. All rights reserved.