[swift]iOS開発:rar解凍庫Unrar 4 iOSで遭遇したピットを使用し、独自の簡易版のローカル砂箱ファイルブラウザを添付

2423 ワード

学校の1つのプロジェクトは解凍rarファイルの機能を追加する必要があるため、ネット上でこの方面の第3ライブラリを探して、長い間探して1つの3年前の解凍ライブラリUnrar 4 iOSだけを発見して、私は使ったことがある人がきっと苦痛な経験があると信じて、先にこのライブラリをインストールして1山の穴があることを言わないで、中のいくつかの重要な方法はすべて使うことができなくて、しかも解凍したファイル名は文字化けして、長い間ネット上でいろいろな方法を探してやっと完璧に問題を解決しました.第3ライブラリは私のエンジニアリングファイルから直接コピーすることができ、問題はありません.64ビットを完璧にサポートしています.文字化けしの部分はStringに方法を拡張しました.
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..

プレゼンテーション:
QQ20170611-211552.gif
Demoアドレス:https://github.com/Franzeyang/FileManager
原作住所:https://github.com/ararog/Unrar4iOS