ios中zip包压缩和解压缩

       因为项目有这样的需求,查了一下相关的内容。ios中要想实现这个功能,主要需要用到ZipArchive这个开源的第三方库。

       一 压缩

      1.需要压缩的zip文件的路径。
<div style="text-align: left;"><span style="font-size:14px;"><span style="font-family:FangSong_GB2312;">       NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);</span></span></div><span style="font-family:FangSong_GB2312;font-size:14px;"></span><div style="text-align: left;">       NSString *docDir = [paths objectAtIndex:0];</div><div style="text-align: left;">       NSString *zipFile = [docDir stringByAppendingPathComponent:@"video.zip"];</div>
       
      2.创建压缩文件

<div style="text-align: left;"><span style="font-size:14px;"><span style="font-family:FangSong_GB2312;">      ZipArchive *za = [[ZipArchive alloc] init];</span></span></div><span style="font-family:FangSong_GB2312;font-size:14px;"></span><div style="text-align: left;">      [za CreateZipFile2:zipFile];</div>


      3.添加你需要压缩的文件

<div style="text-align: left;"><span style="font-size:14px;"><span style="font-family:FangSong_GB2312;">      //audio.amr</span></span></div><span style="font-family:FangSong_GB2312;font-size:14px;"></span><div style="text-align: left;">      NSString *audioPath = [docDir stringByAppendingPathComponent:@"audio.amr"];</div><div style="text-align: left;">      [za addFileToZip:audioPath newname:@"audio.amr"];</div>


      4.把压缩文件写到磁盘

      BOOL success = [za CloseZipFile2];

     需要注意的是,要是压缩文件夹的话,应该这样处理
<span style="font-size:18px;">  NSString *fileName=[NSString stringWithFormat:@"resources/%@",[contents objectAtIndex:i]];
  [za addFileToZip:filePath newname:fileName];
</span>


      二  解压缩
      1获取要解压缩的zip包的路径
       
   NSString *zipPath = [[NSBundle mainBundle]pathForResource:@"video" ofType:@"zip"];

      

       2要解压到的路径

   NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
   NSString *docspath = [paths objectAtIndex:0];
      

      3解压缩      

       

    if ([za UnzipOpenFile: zipPath])
    {
        BOOL ret = [za UnzipFileTo: docspath overWrite: YES];
        if (NO == ret)
        {
            
        }
        [za UnzipCloseFile];
    }


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值