github地址 https://github.com/ZipArchive/ZipArchive
我的环境: xcode 8
1, 下载zip包, 解压, 拷贝里面的SSZipArchive目录到项目中
2, 删除SSZipArchive中的SSZipArchive+Swift.swift文件
3, targets ---> build Phases ---> linkBinary with libraries, 增加libz.tbd
4,需要的文件导入 #import "SSZipArchive.h"
遇到的问题,
1, 没有删除SSZipArchive+Swift.swift时, 会报错
“Use Legacy Swift Language Version” (SWIFT_VERSION) is required to be configured
correctly for targets which use Swift. Use the [Edit > Convert > To Current Swift Syntax…]
menu to choose a Swift version or use the Build Settings editor to configure the build
setting directly.
2, 我只用oc, 所以就删了那个swift的文件. 我也不知道怎么解决. 知道的同学, 可以告诉我一下.谢谢
------------- 压缩 ---------------------
// 获取需要压缩的文件数组
NSArray *inputPaths = [NSArray arrayWithObjects:[[NSBundle mainBundle]pathForResource:@"config.properties" ofType:nil], [[NSBundle mainBundle] pathForResource:@"b.mkv" ofType:nil], nil];
// 指定压缩到哪, 文件名叫什么
NSString *docpath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
NSString *outputPath = [docpath stringByAppendingPathComponent:@"a.zip"];
NSLog(@"path:%@",outputPath);
// 返回的布尔值代表是否压缩完成
Boolean b = [SSZipArchive createZipFileAtPath:outputPath withFilesAtPaths:inputPaths];
------------ 简单解压 ------------
// 压缩包的全路径(包括文件名)
NSString *destinationPath = zipPath;
// 目标路径,
NSString *destinationPath = destinationPath;
// 解压, 返回值代表是否解压完成
Boolean b = [SSZipArchive unzipFileAtPath:zipPath toDestination:destinationPath];
------------ 带回调的解压 ------------
Boolean b1 = [SSZipArchive unzipFileAtPath:zipPath toDestination:destinationPath progressHandler:^(NSString * _Nonnull entry, unz_file_info zipInfo, long entryNumber, long total) {
// entry : 解压出来的文件名
//entryNumber : 第几个, 从1开始
//total : 总共几个
NSLog(@"progressHandler:%@, , entryNumber:%ld, total:%ld", entry, entryNumber, total);
} completionHandler:^(NSString * _Nonnull path, BOOL succeeded, NSError * _Nullable error) {
//path : 被解压的压缩吧全路径
//succeeded 是否成功
// error 错误信息
NSLog(@"completionHandler:%@, , succeeded:%d, error:%@", path, succeeded, error);
}];
oc 项目集成SSZipArchive (文件夹拷入方式)
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 具体步骤 一、将ruby的原生镜像移除 $ gem sources --remove https://rubyge...
- 如果此文件夹已被加入git追踪,那么删除方法很简单,只需要将此文件夹删掉,然后提交一下就可以了 如果次文件夹曾经被...
- 最近比较清闲,就把以前学习的过程记录下吧,多少年后如果能在互联网上找到自己的痕迹,想想还是一件蛮值得高兴的事情。 ...
- 一、前言 在我们的日常开发中,需要大量的图片来美化我们的 APP,图片的大量使用在增强 UI 的美观性外,也带来诸...