iPhone:在运行时下载zip并在主捆绑包子目录中解压缩
我想扩展我的iPhone应用程序,该应用程序将zip文件下载到其中 然后一个子目录将其提取出来,然后加载zip中的图像 您知道如何在运行时解压并访问图像吗?我真的很乐意有个主意iPhone:在运行时下载zip并在主捆绑包子目录中解压缩,iphone,ios,ipad,Iphone,Ios,Ipad,我想扩展我的iPhone应用程序,该应用程序将zip文件下载到其中 然后一个子目录将其提取出来,然后加载zip中的图像 您知道如何在运行时解压并访问图像吗?我真的很乐意有个主意 您好,您无法提取到您的包中。使用[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)objectAtIndex:0]获取可写入的目录的路径 您可以使用中的代码从zip存档中提取文件。我过去成功地使用过 它非常轻巧,使用
您好,您无法提取到您的包中。使用
[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)objectAtIndex:0]
获取可写入的目录的路径
您可以使用中的代码从zip存档中提取文件。我过去成功地使用过
它非常轻巧,使用简单,支持密码保护,在一个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];
如果将
ZipArchive
添加到项目中,请记住还要添加框架。
正确的框架是libz.dylib
最新版本(Xcode 4.2)是1.2.5
(将框架添加到目标的“构建阶段”选项卡中包含库的部分。)我建议您使用bcoz,它支持ARC
和非ARC
项目
SSZipArchive.h
、SSZipArchive.m
和minizip
添加到项目中libz
(现在是它的libz1.2.5
)库添加到您的目标ARC
,您不需要做任何事情SSZipArchive
将检测您是否未使用ARC
,并添加所需的内存管理代码
代码如下所示:
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
// Unzipping
//If your zip is in document directory than use this code
NSString *zipPath = [documentsDirectory stringByAppendingPathComponent:@"mediadata.zip"];
//else if zip file is in bundle than use this code
NSString *zipPath = [[NSBundle mainBundle] pathForResource:@"mediadata" ofType:@"zip"];
NSString *destinationPath = [documentsDirectory stringByAppendingPathComponent:@"MediaData"];
if( [SSZipArchive unzipFileAtPath:zipPath toDestination:destinationPath] != NO ) {
//unzip data success
//do something
NSLog(@"Dilip Success");
}else{
NSLog(@"Dilip Error");
}
如何检查文件是否受密码保护,它是否支持基于ObjC++,我可以得到Objc版本,这样我就不用使用Obj+C++编译器吗?@ Rog我可以用ZiPARCHIVE来为iOS 6i无法使用这个程序来构建,我添加LBZ1.1.2.DyLB,但它没有运行,您要导入哪些框架?我可以使用ios版的Ziparchive吗?不错的回答非常有用,thanx+1If.zip文件在服务器中,如何使用SSZipArchive库。请让我们know@JoshKethepalli在这种情况下,您必须先在本地下载ZIP文件,然后将其解压缩,如果本地存储中没有原始ZIP文件,则无法将其解压缩。当我解压缩文件时,它显示为“.dat”格式。如何像平常一样提取文件folder@JoshKethepalli你能检查一下你的zip吗,下载后它没有损坏。主包是只读的。您不能将文件解压缩到其中,但是可以使用本地目录,如documents目录。