iOS中解壓rar文件

iOS中基于UnrarKit解壓rar文件

iOS中解壓rar文件,使用UnrarKit框架解壓,框架github地址
使用pods導(dǎo)入框架之后會(huì)報(bào)錯(cuò)

報(bào)錯(cuò)內(nèi)容截圖

這是因?yàn)闆]有導(dǎo)入依賴框架libc++.bdt,導(dǎo)入之后編譯一下即可

導(dǎo)入依賴庫截圖

然后代碼中

/** 解壓 */
- (void)extract{
//獲取Document路徑
    NSArray *documentsPathArr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsPath = [documentsPathArr lastObject];
    //拼接上文件
    NSString * fileString = [NSString stringWithFormat:@"Announcement/%@",self.rarFileName];
    // 拼接要寫入文件的路徑
    NSString *path = [documentsPath stringByAppendingPathComponent:fileString]; //文件路徑
    NSError *archiveError = nil;
    URKArchive *archive = [[URKArchive alloc] initWithPath:path error:&archiveError];
    if (!archive) {
        UIAlertController *controller = [UIAlertController alertControllerWithTitle:@"提示"
                                                                            message:@"解壓失敗,請(qǐng)重試!"
                                                                     preferredStyle:UIAlertControllerStyleAlert];
        [controller addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil]];
        [self presentViewController:controller animated:YES completion:nil];
        return;
    }
    NSError *error = nil;
    NSArray *filenames = [archive listFilenames:&error];
    
    if (error) {
        [MBProgressHUD showError:@"解壓失敗"];
        return;
    }
    for (NSString *filename in filenames) {
        NSLog(@"File: %@", filename);//打印文件名稱
    }
    NSData *data = [archive extractDataFromFile:filenames[0] progress:nil error:&error];
    if (error) {
        [MBProgressHUD showError:@"解壓失敗"];
        if (error.code == ERAR_MISSING_PASSWORD) {
        }
    }
    if (data != nil) {
        //解壓后的文件操作可以在這里進(jìn)行處理,比如保存或者顯示處理都可以
    }
}

如果要保存文件,可以在

if (data != nil) {
    //解壓后的文件操作可以在這里進(jìn)行處理,比如保存或者顯示處理都可以
    // 獲取路徑
    NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    // 拼接文件路徑
    NSString *path = [doc stringByAppendingPathComponent:[NSString stringWithFormat:@"AnnouncementData/%@",filenames[0]]];
    [data writeToFile:path atomically:YES];//存儲(chǔ)
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容