ios中zip包压缩和解压缩

来源:互联网 发布:适合学英语的英剧 知乎 编辑:程序博客网 时间:2024/05/20 02:28

       因为项目有这样的需求,查了一下相关的内容。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
原创粉丝点击