`

ios用ZipArchive组件进行压缩

 
阅读更多

前几天做了一个ZipArchive解压缩zip的需求:ios解压缩zip文件

今天又碰到要压缩zip的需求,就顺手补充一下

当然还是需要先引入ZipArchive,在编译中加入libz.dylib,然后下面是代码,简单封装了下:

+(void) doZipAtPath:(NSString*)sourcePath to:(NSString*)destZipFile
{
    NSFileManager *fileManager = [NSFileManager defaultManager];
    ZipArchive * zipArchive = [ZipArchive new];
    
    if([fileManager fileExistsAtPath:destZipFile]){
        return;// 文件已存在,直接返回
    }
    [zipArchive CreateZipFile2:destZipFile];
    
    NSArray *fileList = [fileManager contentsOfDirectoryAtPath:sourcePath error:nil];// 文件列表
    for(NSString *filePath in fileList){
        NSString *fileName = [filePath lastPathComponent];// 取得文件名
        [zipArchive addFileToZip:filePath newname:fileName];
    }
    
    [zipArchive CloseZipFile2];
}

其实关键的API就3个,createZipFile2, addFileToZip, closeZipFile2

代码很简单,基本是自注释的,就不多解释了。只是要注意,addFileToZip方法的接受的参数是NSString*,所以如果要压缩整个目录(包括子目录下的所有文件),可以遍历此文件夹,也就是上面的contentsOfDirectoryAtPath方法

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics