admin管理员组文章数量:1632159
SARUnArchiveANY简介
开源库网址:
https://github/saru2020/SARUnArchiveANY
简介:
一个iOS的非常有用的库来解压zip,.rar,7z文件。
他是以下库的简单集成:
- UnrarKit
- SSZipArchive
- LzmaSDKObjC (7z)
这个库有个问题,依赖SSZipArchive版本非常低
需要注意的是解压出来会被多套一层文件夹 “Extract rar”
使用SARUnArchiveANY解压文件
使用pod进行依赖,在Podfile中加入并pod install:
pod 'SARUnArchiveANY'
解压一个带密码的压缩文件,oc版本:
NSError *archiveError = nil;
//URKArchive用来判断是否要输入密码,filePath是要解压的文件路径
URKArchive *archive = [[URKArchive alloc] initWithPath:filePath error:&archiveError];
if (!archive) {
NSLog(@"Failed!");
return;
}
NSError *error = nil;
NSArray *filenames = [archive listFilenames:&error];
if ([archive isPasswordProtected]) {
NSLog(@"需要密码");
}
//下面是解压,如果上面判断得到是需要密码则将密码配置进去(密码是多少要问用户)
SARUnArchiveANY *unarchive = [[SARUnArchiveANY alloc]initWithPath:filePath];
unarchive.password = @"";//用户输入密码
unarchive.destinationPath = destPath;//指定解压路径路径 会被多套一层文件夹 "Extract rar"。如果不指定会解压到原文件相同文件夹下
//解压成功回调,返回参数是解压文件路径(每一个文件,如果下面还有文件夹 包含文件夹里面的)
unarchive.completionBlock = ^(NSArray *filePaths){
NSLog(@"For Archive : %@",filePath);
for (NSString *filename in filePaths) {
NSLog(@"File: %@", filename);
}
};
//失败回调
unarchive.failureBlock = ^(){
};
[unarchive decompress];
解压一个带密码压缩文件swift版本:
// 判断是否需要密码
do {
let archive = try URKArchive(path: path!)
let needPassword = archive.isPasswordProtected()
} catch {
print(" 失败")
return
}
// 下面开始解压
let unarchive = SARUnArchiveANY(path: path)
unarchive?.destinationPath = destPath //指定解压路径路径 会被多套一层文件夹 "Extract rar"。如果不指定会解压到原文件相同文件夹下
unarchive?.completionBlock = { arr in
// 打印解压文件路径
for str in arr! {
print("\(str)")
}
}
unarchive?.failureBlock = {
// 解压失败回调
}
unarchive?.password = "1111" // (上面判断是否需要密码,需要密码的话是找用户要的)
unarchive?.decompress()
本文标签: 版本文件SARUnArchiveANYiosRAR
版权声明:本文标题:ios使用SARUnArchiveANY 解压rar文件(oc和swift版本) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1729114979a1187211.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论