2011-10-16 27 views
7

我想在我的iPhone應用程序中包含unrar文件選項。iOS上有沒有unrar庫嗎?

我已經嘗試https://github.com/ararog/Unrar4iOS但這個庫是不完整的(某些功能還沒有實現像 - (BOOL)unrarFileTo:(的NSString *)路徑覆蓋:(BOOL)覆蓋)

感謝。

+0

爲了將來的參考,如果您考慮「語言和API」與「操作系統」,你會得到更好的搜索結果,否則你會錯過完美的好麗braries和示例代碼,在iOS或Mac OS X上運行良好。從「unrar objective-c」開始,獲得最廣泛的結果。 –

+0

請搜索該網站。這已經被問了好幾次了。 –

+0

很明顯,我在提出這個問題之前進行了大量搜索。 – Alex1987

回答

5

的超集,我結束了使用Unrar4ios,但我需要我自己寫函數實際上提取了rar文件:

-(BOOL) unrarFileTo:(NSString*)path overWrite:(BOOL)overwrite { 

    int RHCode = 0, PFCode = 0; 

    [self _unrarOpenFile:filename mode:RAR_OM_EXTRACT]; 

    while ((RHCode = RARReadHeaderEx(_rarFile, header)) == 0) { 

     if ((PFCode = RARProcessFile(_rarFile, RAR_EXTRACT, (char *)[path UTF8String], NULL)) != 0) { 
      [self _unrarCloseFile]; 
      return NO; 
     } 

    } 

    [self _unrarCloseFile]; 


    return YES; 
} 
+3

考慮在github上提交pull請求,以幫助原始項目。 – Moshe

+0

@Moshe:很高興。問題在於我對github不太熟悉 - 請給我一個簡短的解釋(或鏈接),告訴我如何做到這一點? – Alex1987

+0

我自己並不是GitHub,但實際上,您需要分叉回購,進行更改,推送提交,然後請求拉取。我會找到一個鏈接。 – Moshe

4
+0

我已經試過這個庫 - 但它有點不完整。如果你看看源代碼,你會發現一些函數並沒有被最重要的實現 - (BOOL)unrarFileTo:(NSString *)path overWrite:(BOOL)覆蓋。 – Alex1987

+1

@Alex:你看過它附帶的示例項目嗎?特別是./UnrarExample/Classes/UnrarExampleViewController.mm的-decompress:方法。似乎工作正常。 –

+0

@JoshuaNozzi因爲他使用了一種名爲extractStream的不同方法,它基本上會返回一個NSData對象。當我們談論圖像時(比如在項目中),它可能會工作 - 但是當涉及更大的文件時則不行。 – Alex1987

0

unrarlib圖書館應該爲你工作,因爲目標C是C.

+0

你真的嘗試過嗎?這是一個非常舊的項目(2002-2004),不支持rar 3.x檔案 – Alex1987