TAR encode/decode-Bibliothek für das iPhone (ideal Kakao)
Kennt jemand eine Bibliothek/code, der mir ermöglicht, zu codieren und zu decodieren .tar formatierte Daten -, dass ich in meinem iPhone-Projekt (vorzugsweise Kakao)
Vielen Dank im Voraus
Craig
UPDATE: ich habe einen Blick auf die vorgeschlagenen Bibliotheken und kommen zu dem Schluss, dass Sie viiiiel zu viel von den problem - also ich bin der Entwicklung der codec selbst ist - es ist nur ein 512byte ASCII-header nach dem all - wie schwer kann es sein 🙂
- erste Gefundene Element in google 'tar-Bibliothek c' feep.net/libtar
- Craig, haben Sie jemals eine gute Antwort hier... oder Fortschritte auf Ihrem eigenen Implementierung? Es ist ein großes Loch in der API-Platz, so weit ich erzählen kann. Auch: ich habe es geschafft, libtar kompiliert in das iPhone-freundliche statische Bibliotheken, aber es war ein schmerzhafter Prozess, und ich habe in ein paar Abstürze im test-Fälle, die machen mich im Grunde denke ich, aufgeben die ganze Richtung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die beste Bibliothek, die ich gefunden habe, ist
libarchive
. Es ist gut entwickelt, gut dokumentiert und schnell.Ich gerade erstellt ein repository auf GitHub, dass die Werkzeuge zu bauen
libarchive
undlibbz2
als statische Bibliotheken, die für iOS 4.2+. (Es sollte möglich sein, es zu verwenden, um Ziel-3.x, zu.)http://github.com/davepeck/iOS-libarchive/
Andere haben darauf hingewiesen, dass
libarchive
ist im SDK enthalten. Das ist nicht ganz wahr. Die binärelibarchive.2.dylib
enthalten ist, aber die Header nicht. Das gleiche gilt fürlibbz2
(aber seltsamerweise nicht zulibz
.) Dies bedeutet, dasslibarchive
ist als eine private API -- in anderen Worten, Sie können nicht es verwenden, wenn Sie beabsichtigen, zu Schiff über den App-Store. Daher mein repository.In der Tat, libarchive.dylib ist im iPhone SDK. Sie müssen nur, um es hinzuzufügen. Das problem ist, dass irgendwie Apple nicht include die header-Datei archivieren.h. Aber zuerst, müssen Sie nicht die header-Dateien, wenn Sie sicher sind, dass die Funktionen, die Sie aufrufen möchten existiert (obwohl der compiler jammern), zweitens, wenn Sie nicht möchten, dass der compiler sich beschweren, können Sie die header-Datei für libarchive 2.6 und fügen Sie es in Ihrem Programm ...
Wenn Sie wissen möchten, kennen zu verwenden libarchive, laden Sie die Quelle aus dem Netz und studieren Sie die Beispiel gegeben (vor allem minitar). Es ist wirklich sehr einfach.
libarchive
ist eine private API, die auf ALLEN iOS-Versionen. Eine öffentliche API, (1) die Bibliothek binäre muss in der SDK, und (2) die header-Datei muss in der SDK.Könnten Sie versuchen,libxad. Dies ist die Bibliothek,Der Unarchiver, eine Mac-app, verwendet.
Sogar besser link: http://code.google.com/p/libarchive/downloads/detail?name=libarchive-2.6.2.tar.gz&can=2&q=
Version 2.6.2 ist im iOS 4.0 und 4.1 SDK. Es ist nicht in 3.2 (oder früher nehme ich an).
Wenn du das runterladen, ausführen
./configure --prefix=$HOME && make && make install
und finden Sie die zwei header-Dateien in $HOME/includelibarchive
ist eine private API, die auf ALLEN iOS-Versionen. Eine öffentliche API, (1) die Bibliothek binäre muss in der SDK, und (2) die header-Datei muss in der SDK.Für libarchive, es funktioniert out of the box, indem Sie nur "libarchive", um Ihre framework-Liste, aber der header fehlt. Sie können kopieren Sie die Kopfzeilen aus der libarchive-Quelle. Oder wenn Sie wollen, um es einfach zu halten, versuchen Sie dies:
Ich interessierten nur die Lektüre, damit ich nicht die Mühe mit einigen der archive_entry.h-mutation Funktionen. Auch ein paar der Methoden, die auskommentiert sind. Das sind die alternativen für verschiedene Versionen, get #ifdef würde aus. Viel Glück und gute bug-Jagd!
Hier ist ein Beispiel der Verwendung es zu entpacken eines Archivs in ein Verzeichnis auf ios:
--- Dave
libarchive kommt vorinstalliert auf iOS.
Scheint es zwei weitere moderne Bibliotheken, beide erhältlich als Cocoapods:
Beide von Ihnen sind sehr ähnlich, da Sie beide basieren auf Licht-Entpacken-für-iOS.
.tar
und.tar.gz
Verpackung es.