2011-10-16 19 views
7

Chcę dołączyć opcję Unrar Files w mojej aplikacji na iPhone'a.Czy istnieje biblioteka unrar dla systemu iOS?

Próbowałem już https://github.com/ararog/Unrar4iOS ale ta biblioteka nie jest kompletna (niektóre funkcje nie są jeszcze wdrożone jak - (BOOL) unrarFileTo: (NSString *) nadpisać ścieżki: (BOOL) nadpisać)

Dzięki.

+0

W celu uzyskania dalszych informacji uzyskasz lepsze wyniki wyszukiwania, jeśli weźmiesz pod uwagę "język i API" w porównaniu z "OS", w przeciwnym razie stracisz doskonale dobry li braries i przykładowy kod, który działa równie dobrze na iOS lub Mac OS X. Zacznij od "unrar objective-c", aby uzyskać najszersze wyniki. –

+0

Proszę przeszukać stronę. Zostało to zadane pół tuzina razy wcześniej. –

+0

Oczywiście, zanim zadałem to pytanie, obszernie przeszukałem. – Alex1987

Odpowiedz

5

skończyło się używając Unrar4ios ale musiałem napisać sobie funkcję, która w rzeczywistości wyodrębnia plik 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

Rozważ przesłanie prośby o ściągnięcie na github, aby pomóc oryginalnemu projektowi. – Moshe

+0

@Moshe: Z przyjemnością. Problem polega na tym, że nie jestem zbyt zaznajomiony z githubem - czy możesz dać mi krótkie wyjaśnienie (lub link), jak to zrobić? – Alex1987

+0

Sam nie jestem profesjonalistą GitHub, ale w zasadzie trzeba rozwikłać repozytorium, wprowadzić zmiany, wypchnąć zatwierdzenie, a następnie poprosić o pociągnięcie. Złapię link, jeśli go znajdę. – Moshe

4
+0

Próbowałem już tej biblioteki - ale jest ona nieco niekompletna. Jeśli spojrzysz na źródło, zobaczysz, że niektóre funkcje nie są najważniejsze - (BOOL) unrarFileTo: (NSString *) path overWrite: (BOOL) overwrite. – Alex1987

+1

@Alex: Czy przyjrzał się przykładowemu projektowi, który mu towarzyszy? W szczególności -decompress: metoda ./UnrarExample/Classes/UnrarExampleViewController.mm? Wydaje się działać dobrze. –

+0

@JoshuaNozzi Działa, ponieważ używa innej metody o nazwie extractStream, która w zasadzie zwraca obiekt NSData. Może działać, gdy mówimy o obrazach (jak w projekcie) - ale nie wtedy, gdy chodzi o większe pliki. – Alex1987

0

Biblioteka unrarlib powinny pracować dla Ciebie, ponieważ Objective C jest podzbiorem C

+0

Czy próbowałeś tego? Jest to bardzo stary projekt (2002-2004) i nie obsługuje archiwów rar 3.x. – Alex1987

Powiązane problemy