压缩解压ZIP

 ZipArchive下载:http://download.csdn.net/detail/p709723778/4981538

引入框架 libz.dylib

引入头文件 "ZipArchive.h"

一:解压缩

1.压缩:

ZipArchive* zip = [[ZipArchivealloc]init];

   NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

    NSString*documentpath = ([paths count] >0) ? [paths objectAtIndex:0]: nil;

    NSString*l_zipfile = [documentpathstringByAppendingString:@"/test.zip"];

    

    NSString*image1 = [documentpathstringByAppendingString:@"/image1.jpg"];

    NSString*image2 = [documentpathstringByAppendingString:@"/image2.jpg"];

    

    BOOL ret =[zip CreateZipFile2:l_zipfile];

    ret = [zipaddFileToZip:image1newname:@"image1.jpg"];

    ret = [zipaddFileToZip:image2newname:@"image2.jpg"];

    if( ![zipCloseZipFile2] )

    {

       l_zipfile = @"";

    }

    [ziprelease];

 

2. 解压缩:

 

ZipArchive* zip = [[ZipArchivealloc]init];

   NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

    NSString*documentpath = ([paths count] >0) ? [paths objectAtIndex:0]: nil;

    

    NSString*l_zipfile = [documentpathstringByAppendingString:@"/test.zip"];

    NSString*unzipto = [documentpathstringByAppendingString:@"/test"] ;

    if( [zipUnzipOpenFile:l_zipfile] )

    {

       BOOL ret = [zipUnzipFileTo:unziptooverWrite:YES];

       if( NO==ret )

       {

       }

       [zip UnzipCloseFile];

    }

    [ziprelease];



二:zipArchive乱码问题 

 

我有一个压缩包, 里面是一些带特殊符号的文件, 使用zipArchive解压后会出现乱码。
解决方法是到ZipArchive.mm文件中找到

 

NSString * strPath = [NSString 

stringWithCString:filename];

 

换成UTF8方式解压, 如下:

 

NSString * strPath = [NSString 

stringWithUTF8String:filename];

 

但是有时后中文也会有问题, 用如下方式:

 

NSStringEncoding enc =

CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);

NSString * strPath = [NSString 

stringWithCString:filename encoding:enc];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值