引入框架 libz.dylib
引入头文件 "ZipArchive.h"
- (IBAction) unZipClick {
NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
NSString *filePath = [path stringByAppendingPathComponent:[NSString stringWithFormat:@"book_%d.zip", bookID]];
NSString *unZipPath = [path stringByAppendingPathComponent:[NSString stringWithFormat:@"book_%d", bookID]];
ZipArchive *zip = [[ZipArchive alloc] init];
BOOL result;
if ([zip UnzipOpenFile:filePath]) {
result = [zip UnzipFileTo:unZipPath overWrite:YES];
if (!result) {
NSLog(@"解压失败");
}
else
{
readBtn.enabled = YES;
NSLog(@"解压成功");
}
[zip UnzipCloseFile];
}
}
创建/添加一个zip包
ZipArchive* zipFile = [[ZipArchive alloc] init];
//次数得zipfilename需要一个完整得路径,例如***/Documents/demo.zip
[zipFile CreateZipFile2:@"zipfilename"];
//有两种可选得方式进行创建压缩包,带密码和不带密码的
[[zipFile CreateZipFile2:@"zipfilename" Password:@"your password"];
//接下来就是将需要压缩的文件添加到这个压缩包中
//这里第一个参数需要完整的路径,例如:***/Documents/a.txtnewname是指文件在压缩包中的名字,不需要路径,只是一个名称
[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];
//记得释放