程序需要往服务器上上传文件, 因为iPhone用户往往是用gprs或者edge网络,为了节约流量以及加快上传速度,所以只好将要上传的文件打包成zip文件,这样体积小了, 也为用户节约了时间和金钱。 开始的时候抱有意思希望去挖掘SDK文档, 未果, sdk不提供zip相关接口,在apple论坛打听了一下,很多dx给的建议是用apple script在后台打包, 对此领域不熟悉,放弃。 好在iPhone的官方SDK支持zLib库,这就好了, 找来minizip,一个封装的挺好的C/C++ zip库, 动手创建Objective-C对象封装之, 只需要几行代码即可完成, 简单实用。
使用方法如下
BOOL ret = [zip CreateZipFile2:l_zipfile]; ret = [zip addFileToZip:l_photo newname:@"photo.jpg"]; if( ![zip CloseZipFile2] ) {
l_zipfile = @"";
} [zip release];
其中 l_photo是之源文件路径, @”photo.jpg” 是在新的文件名(不带路径)
之前没有实现 解压缩的代码, 今天补上了, 使用起来也和压缩差不多,下面时用法演示
ZipArchive* za = [[ZipArchive alloc] init]; if( [za UnzipOpenFile:@"/Volumes/data/testfolder/Archive.zip"] ) { BOOL ret = [za UnzipFileTo:@"/Volumes/data/testfolder/extract" overWrite:YES]; if( NO==ret ) { } [za UnzipCloseFile]; } [za release];
需要附件留言,我会发邮箱