下载地址:https://github.com/samsoffes/ssziparchive
注意:需要引入libz.dylib框架
// Unzipping
NSString *zipPath=@"path_to_your_zip_file";
NSString *destinationPath=@"path_to_the_folder_where_you_want_it_unzipped";
[SSZipArchiveunzipFileAtPath:zipPathtoDestination:destinationPath];
// Zipping
NSString *zippedPath=@"path_where_you_want_the_file_created";
NSArray *inputPaths=[NSArray arrayWithObjects:
[[NSBundle mainBundle] pathForResource:@"photo1"ofType:@"jpg"],
[[NSBundle mainBundle] pathForResource:@"photo2"ofType:@"jpg"]
nil];
[SSZipArchivecreateZipFileAtPath:zippedPathwithFilesAtPaths:inputPaths];
代码示例:
//
// ViewController.m
// 文件下载
//
#import "ViewController.h"
#import "YKDFileDownloader.h"
#import "SSZipArchive.h"
@interface ViewController ()
//下载器
@property(nonatomic,strong)YKDFileDownloader *fileDownloader;
@end
@implementation ViewController
- (YKDFileDownloader *)fileDownloader
{
if (!_fileDownloader) {
_fileDownloader = [[YKDFileDownloader alloc] init];
//需要下载的远程文件URL
_fileDownloader.url = @"https://xxxx.com/images.zip";
//文件保存到什么地方
NSString *caches = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)lastObject];
NSString *filepath = [caches stringByAppendingPathComponent:@"images.zip"];
_fileDownloader.destPath = filepath;
_fileDownloader.progressHandler = ^(double progress){
NSLog(@"下载进度---%f",progress);
};
_fileDownloader.completionHandler = ^{
NSLog(@"下载完毕");
//解压文件(文件大会比较耗时)
[SSZipArchive unzipFileAtPath:filepath toDestination:caches];
};
}
return _fileDownloader;
}
- (void)viewDidLoad {
[super viewDidLoad];
}
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
//开始下载
[self.fileDownloader start];
}
@end