当前位置: 首页 > news >正文

ios使用SARUnArchiveANY 解压rar文件(oc和swift版本)

SARUnArchiveANY简介

开源库网址:
https://github.com/saru2020/SARUnArchiveANY
简介:
一个iOS的非常有用的库来解压zip,.rar,7z文件。
他是以下库的简单集成:

  • UnrarKit
  • SSZipArchive
  • LzmaSDKObjC (7z)

需要注意的是解压出来会被多套一层文件夹 “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()
http://www.lryc.cn/news/503.html

相关文章:

  • 【Python学习笔记】21.Python3 函数(2)
  • day57回文子串_最长回文子序列
  • Element UI框架学习篇(二)
  • 【C++】类与对象(上)
  • Leetcode.1797 设计一个验证系统
  • Kaldi - 数据文件准备
  • 91.【SpringBoot-03】
  • 【本地项目】上传到【GitLab】流程详解
  • 初阶指针C
  • 云原生安全2.X 进化论系列|揭秘云原生安全2.X的五大特征
  • json文件在faster_rcnn中从测试到训练 可行性
  • golang 1.20正式发布,更好更易更强
  • 图片显示一半怎么回事?
  • 102-并发编程详解(中篇)
  • jsp羽毛球场馆管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
  • CacheLib 原理说明
  • 【dapr】服务调用(Service Invokation) - app id的解析
  • Odoo丨5步轻松实现在Odoo中打开企微会话框
  • python读取.stl文件
  • vue2.0项目第一部分
  • 锁与原子操作
  • Prometheus Pushgetway讲解与实战操作
  • 常见字符串函数的使用,你确定不进来看看吗?
  • Elasticsearch:在搜索中使用衰减函数(Gauss)
  • 微信小程序 Springboot英语在线学习助手系统 uniapp
  • LeetCode算法题解——双指针2
  • 线性杂双功能peg化试剂——HS-PEG-COOH,Thiol-PEG-Acid
  • Linux第三讲
  • SpringBoot07:SpringSecurity
  • C++ 浅谈之 STL Vector