注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

熊猫正正的博客

熊猫正正的天空

 
 
 

日志

 
 

iOS 使用ZipArchive压缩文件  

2013-07-23 19:07:56|  分类: ios开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 ZipArchive是一个开源的zip开发包工具。
使用方法如下:
 
创建/添加一个zip包

ZipArchive* zipFile = [[ZipArchive alloc] init];

//次数得zipfilename需要一个完整得路径,例如***/Documents/demo.zip

[zipFile CreateZipFile2:@"zipfilename"]; 

//有两种可选得方式进行创建压缩包,带密码和不带密码的

[[zipFile CreateZipFile2:@"zipfilename" Password:@"your password"];

//接下来就是将需要压缩的文件添加到这个压缩包中

//这里第一个参数需要完整的路径,例如:***/Documents/a.txt  newname是指文件在压缩包中的名字,不需要路径,只是一个名称

[zipFile addFileToZip:@"fullpath of the file" newname:@"new name of the file without path"];

//如果需要将多个文件进行压缩,即压缩文件夹,重复addFileToZip方法即可

[zipFile CloseZipFile2];

[zipFile release];

//释放内存

 

解压zip包:

 

ZipArchive* zipFile = [[ZipArchive alloc] init];

[zipFile UnzipOpenFile:@"zip file name"]; 

//同样,对应的就有两种打开zip包的方式,带密码和不带密码

[zipFile UnzipOpenFile:@"zip file name" Password:@"password" ];

//压缩包释放到的位置,需要一个完整路径 

[zipFile UnzipFileTo:@"output path" overwrite:YES];

[zipFile UnzipCloseFile];

[zipFile release];

//记得释放

   ZipArchive下载地址:https://code.google.com/p/ziparchive/

      代码:


+(NSString *)zipFiles:(NSArray *)paramFiles

{

    //生成zip文件名字

    NSString * zipFileName = [[CUtils generateRndString] stringByAppendingPathExtension:@"zip"];

    //取得zip文件全路径

    NSString * zipPath = [[CUtils documentPath] stringByAppendingPathComponent:zipFileName];

    

    //判断文件是否存在,如果存在则删除文件

    NSFileManager * fileManager = [NSFileManager defaultManager];

    @try

    {

        if([fileManager fileExistsAtPath:zipPath])

        {

            if(![fileManager removeItemAtPath:zipPath error:nil])

            {

                CCLog(@"Delete zip file failure.");

            }

        }

    }

    @catch (NSException * exception) {

        CCLog(@"%@",exception);

    }

    

    //判断需要压缩的文件是否为空

    if(paramFiles == nil || [paramFiles count] == 0)

    {

        CCLog(@"The files want zip is nil.");

        return nil;

    }

    

    //实例化并创建zip文件

    ZipArchive * zipArchive = [[ZipArchive alloc] init];

    [zipArchive CreateZipFile2:zipPath];

    

    //遍历文件

    for(NSString * fileName in paramFiles)

    {

        NSString * filePath = [[CUtils documentPath] stringByAppendingPathComponent:fileName];

        if([fileManager fileExistsAtPath:filePath])

        {   //添加文件到压缩文件

            [zipArchive addFileToZip:filePath newname:fileName];

        }

    }

    //关闭文件

    if([zipArchive CloseZipFile2])

    {

        CCLog(@"Create zip file success.");

        [zipArchive release];

        return zipPath;

    }

    [zipArchive release];

    return nil;

}

  评论这张
 
阅读(124)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017