IOS开发之----使用ZipArchive解压缩文件

引入框架 libz.dylib
引入头文件 "ZipArchive.h"

一:解压缩

1.压缩:

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:@"/test.zip"] ;

    

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

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

    

    BOOL ret = [zip CreateZipFile2:l_zipfile];

    ret = [zip addFileToZip:image1 newname:@"image1.jpg"];

    ret = [zip addFileToZip:image2 newname:@"image2.jpg"];

    if( ![zip CloseZipFile2] )

    {

        l_zipfile = @"";

    }

    [zip release];

 

2. 解压缩:

 

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:@"/test.zip"] ;

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

    if( [zip UnzipOpenFile:l_zipfile] )

    {

        BOOL ret = [zip UnzipFileTo:unzipto overWrite:YES];

        ifNO==ret )

        {

        }

        [zip UnzipCloseFile];

    }

    [zip release];



二: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];

三:不支持4.3模拟器问题

C++Standard Library默认是libc++(LLVM C++ standard library with C++ 11Support)

把它改成Compiler Default即可。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值