ZipArchive压缩和解压缩

本文介绍了如何在iOS应用中使用ZipArchive库进行文件的压缩和解压缩操作,包括创建压缩文件、添加数据、关闭压缩包,以及解压缩文件到指定路径的详细步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

利用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, unsigned long numFiles){

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

    };

 3.解压缩文件

    isOK = [zip UnzipFileTo:newPathoverWrite:YES];

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

 4.关闭压缩文件

    [zip UnzipCloseFile];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值