ZipArchive压缩和解压缩

来源:互联网 发布:盘古网络河北销售处 编辑:程序博客网 时间:2024/04/28 23:55

利用Cocopods 添加第三方类库: ZipArchive


压缩:

 1. 根据文件管理器创建压缩对象zip;

    NSFileManager *manager = [NSFileManager defaultManager];

    ZipArchive *zip = [[ZipArchivealloc]initWithFileManager:manager];


 2. 根据zip创建压缩包,并存入指定路径;

    NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/1.zip"];

    BOOL isOK =NO;

    isOK = [zip CreateZipFile2:pathPassword:@"123"];//每次都会创建一个新的压缩包并打开文件

    NSLog(@"创建%@",isOK?@"成功":@"失败");


 3. 往压缩包里添加数据;

    NSString *fileDirectPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/images”];//获取数据路径;

    NSDirectoryEnumerator *enu = [managerenumeratorAtPath:fileDirectPath];//文件管理器遍历该路径的数据,并返回数据集合;

    for (NSString *strin enu.allObjects) {//遍历enu,得到每个数据的存储路径;

        NSString *imgPath = [fileDirectPathstringByAppendingPathComponent:str];//拼接路径,并添加到压缩包zip;

        isOK = [zip addFileToZip:imgPathnewname:str];

        NSLog(@"添加%@",isOK?@"成功":@"失败");

    }

 4.添加完数据,关闭压缩包

    isOK = [zip CloseZipFile2];

    NSLog(@"关闭%@",isOK?@"成功":@"失败");



解压缩:

  1.根据路径和密码打开压缩文件

    isOK = [zip UnzipOpenFile:pathPassword:@"123"];

    NSLog(@"打开%@",isOK?@"成功":@"失败");

 2.获取解压缩的进度以及文件个数

    NSString *newPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Library/1"];

    zip.progressBlock = ^(int percentage,int filesProcessed, unsignedlong numFiles){

        NSLog(@"%@--%@--%@",@(percentage),@(filesProcessed),@(numFiles));

    };

 3.解压缩文件

    isOK = [zip UnzipFileTo:newPathoverWrite:YES];

    NSLog(@"解压缩%@",isOK?@"成功":@"失败");

 4.关闭压缩文件

    [zip UnzipCloseFile];

0 0
原创粉丝点击