十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
iOS 数据压缩与解压
创新互联公司专业为企业提供东海网站建设、东海做网站、东海网站设计、东海网站制作等企业网站建设、网页设计与制作、东海企业网站模板建站服务,10余年东海做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
Hi,推荐文件给你 "数据压缩与解压.zip"
http://vdisk.weibo.com/s/Gbabp
本文中需要的第三库在本文的代码例子中可以下载。minizip和ZipArchive这两个第三库
ViewController.h代码如下:
#import#import "ZipArchive.h" @interface ViewController : UIViewController -(IBAction)compress:(id)sender; -(IBAction)unAr:(id)sender; @end
ViewController.m代码如下:
自己拖2个Button与如下两个方法相关联
//这方法中数据压缩的方法:
-(IBAction)compress:(id)sender { //导入ZipArchive包之后要加入libz.1.2.5.dylib的库 ZipArchive* zip = [[ZipArchive alloc] init]; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentpath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil; NSString* zipfilePath = [documentpath stringByAppendingString:@"/dj.zip"] ; // NSLog(@"%@",zipfilePath); NSString* p_w_picpath2 = [[NSBundle mainBundle] pathForResource:@"xiaonan" ofType:@"jpg"]; NSString* p_w_picpath3 = [[NSBundle mainBundle] pathForResource:@"xiaonan" ofType:@"jpg"]; //创建压缩包 BOOL ret = [zip CreateZipFile2:zipfilePath]; //向压缩包内加入数据 ret = [zip addFileToZip:p_w_picpath2 newname:@"xiaonan.jpg"]; ret = [zip addFileToZip:p_w_picpath3 newname:@"p_w_picpath3.jpg"]; //关闭压缩包 [zip CloseZipFile2]; [zip release]; }
//数据解压的方法
-(IBAction)unAr:(id)sender { ZipArchive* zip = [[ZipArchive alloc] init]; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentpath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil; NSString* l_zipfile = [documentpath stringByAppendingString:@"/dj.zip"] ; NSString* unzipto = [documentpath stringByAppendingString:@"/dj"] ; //找到需要解压文件的路径 if( [zip UnzipOpenFile:l_zipfile] ) { BOOL ret = [zip UnzipFileTo:unzipto overWrite:YES]; if( NO==ret ) { } //完成解压 [zip UnzipCloseFile]; } [zip release]; }