ZipArchive下载:http://download.csdn.net/detail/p709723778/4981538
引入框架 libz.dylib
引入头文件 "ZipArchive.h"
一:解压缩
1.压缩:
ZipArchive* zip = [[ZipArchivealloc]init];
NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString*documentpath = ([paths count] >0) ? [paths objectAtIndex:0]: nil;
NSString*l_zipfile = [documentpathstringByAppendingString:@"/test.zip"];
NSString*image1 = [documentpathstringByAppendingString:@"/image1.jpg"];
NSString*image2 = [documentpathstringByAppendingString:@"/image2.jpg"];
BOOL ret =[zip CreateZipFile2:l_zipfile];
ret = [zipaddFileToZip:image1newname:@"image1.jpg"];
ret = [zipaddFileToZip:image2newname:@"image2.jpg"];
if( ![zipCloseZipFile2] )
{
l_zipfile = @"";
}
[ziprelease];
2. 解压缩:
ZipArchive* zip = [[ZipArchivealloc]init];
NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString*documentpath = ([paths count] >0) ? [paths objectAtIndex:0]: nil;
NSString*l_zipfile = [documentpathstringByAppendingString:@"/test.zip"];
NSString*unzipto = [documentpathstringByAppendingString:@"/test"] ;
if( [zipUnzipOpenFile:l_zipfile] )
{
BOOL ret = [zipUnzipFileTo:unziptooverWrite:YES];
if( NO==ret )
{
}
[zip UnzipCloseFile];
}
[ziprelease];
二:zipArchive乱码问题
我有一个压缩包, 里面是一些带特殊符号的文件, 使用zipArchive解压后会出现乱码。
解决方法是到ZipArchive.mm文件中找到
NSString * strPath = [NSString
stringWithCString:filename];
换成UTF8方式解压, 如下:
NSString * strPath = [NSString
stringWithUTF8String:filename];
但是有时后中文也会有问题, 用如下方式:
NSStringEncoding enc =
CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
NSString * strPath = [NSString
stringWithCString:filename encoding:enc];