[swift]iOS开发:使用rar解压库Unrar4iOS遇到的那些坑,另附上自己的一个简易版的本地沙盒文件浏览器
程序员文章站
2022-06-24 20:54:23
[swift]ios开发:使用rar解压库unrar4ios遇到的那些坑,另附上自己的一个简易版的本地沙盒文件,学校的一个项目因为需要添加解压rar文件功能,所以在网上找了下关于这方面的第三库,找了...
[swift]ios开发:使用rar解压库unrar4ios遇到的那些坑,另附上自己的一个简易版的本地沙盒文件,学校的一个项目因为需要添加解压rar文件功能,所以在网上找了下关于这方面的第三库,找了很长时间只发现了一个三年前的解压库 unrar4ios ,我相信用过的人一定都会有段痛苦的经历,先不说安装这个库就有一堆坑,里面的好几个重要的方法都用不了,而且解压得到的文件名还是乱码,折腾了很长时间在网上找了各种方法才完美解决问题。第三库可以直接从我的工程文件里拷贝出来不会有什么问题,而且完美支持64位;乱码部分我给string拓展了一个方法latintogbtencoding():
extension string{ func latintogbtencoding()->string{ let gbtenc = cfstringconvertencodingtonsstringencoding(cfstringencoding(cfstringencodings.gb_18030_2000.rawvalue)) let data = self.data(using: .isolatin1) return string(data: data!, encoding: string.encoding(rawvalue: gbtenc))! } }
至于解压后路径的创建问题我也给这个库拓展了一个方法
unrarbyfranze(filepath:string,filename:string),需要传入解压文件的名字以及路径:
extension unrar4ios{ func unrarbyfranze(filepath:string,filename:string){ let directorypath = filepath.replacingoccurrences(of: ".rar", with: "/")//先去掉".rar"后缀方便我们创建一个同名文件夹放置解压得到的文件 //判断该文件夹是否存在,不存在就创建一个 if !filemanager.default.fileexists(atpath: directorypath){ try? filemanager.default.createdirectory(atpath: directorypath, withintermediatedirectories: true, attributes: nil)//创建文件夹 //先判断是否解压成功 if self.unraropenfile(filepath){ let files = self.unrarlistfiles()//解压得到一个包含所有文件名的数组 for i in 0..演示:
demo地址:https://github.com/franzeyang/filemanager
上一篇: var const let三者之间的区别
下一篇: C++:模板与泛型编程