Seite 1 von 1

C++ zip-Bibliothek

Verfasst: 23.04.2013, 14:58
von Jonathan
Hi,
ich möchte zip-Dateien lesen und schreiben können. Und das am liebsten möglichst komfortabel, in modernen C++ und so, und schön wäre es auch, wenn diese Bibliothek nicht besonders groß ist und keine anderen Abhängigkeiten hat, so dass ich sie einfach in mein Projekt mit rein packen kann (um Abhängigkeiten zu minimieren).
Gibt es da irgendwelche Empfehlungen? Naheliegend wäre natürlich sowas wie zlib, aber das ist halt C. Boost hat da auch irgendwas interessantes mit Archiven, aber so ganz traue ich der Sache noch nicht.

Re: C++ zip-Bibliothek

Verfasst: 23.04.2013, 15:06
von dowhilefor
Diese Art von Komfort findet man leider selten bei C++. Imho das was mich auch am meisten davon abhält mehr in C++ zu programmieren. Man muss halt noch einiges selber machen. Aber ganz ehrlich mit hilfe von zlib (bzw. minizip) sollte das doch kein großer Aufwand sein. Eine Klasse mit 3-4 Methoden schreiben halte ich jetzt nicht für den Akt und vorallem hat es den Vorteil das man es leichter auf seine Bedürfnisse anpassen kann, bspw. Asynchrones Laden mit Fortschritt; Über verschiedene Streams; mit eigenem Datei format etc.

Re: C++ zip-Bibliothek

Verfasst: 23.04.2013, 15:29
von Schrompf
Ich benutze auch die zlib, mit eigenen kleinen Helfern für die Interaktion mit meinen Puffer- und Streaming-Klassen.

Re: C++ zip-Bibliothek

Verfasst: 23.04.2013, 17:46
von Krishty
Häh? Geht es hier um das Laden von .zip-Archiven oder bloß um irgendeine Kompression, die als Blob ausgeschrieben und geladen wird?

Re: C++ zip-Bibliothek

Verfasst: 23.04.2013, 19:28
von dot
zlib wurde ja schon erwähnt, snappy dürfte auch noch interessant sein. Ich geh davon aus, dass dir bewusst ist, dass beide sich nur um die Kompression kümmern und vom .zip Dateiformat keine Ahnung haben. Das ist aber relativ simpel, also entweder selber machen oder andere Libraries verwenden (bei zlib ist z.B. minizip dabei, das macht das dann)...

Re: C++ zip-Bibliothek

Verfasst: 23.04.2013, 20:41
von Jonathan
Es geht um zip-Archive. Die Kompression ist sogar mehr oder weniger egal, weil ich eh Bilddateien darein packe, die dann ja schon komprimiert wären. Es geht eher darum, dass man viele Dateien zu einer einzelnen zusammen fasst, die dann handlicher ist. Und es sollen halt zip-Dateien (oder irgendein anderes Standardarchivformat) sein, damit man sie auch mal mit einem anderen Programm öffnen oder generieren kann.

Re: C++ zip-Bibliothek

Verfasst: 23.04.2013, 20:55
von Helmut
Diese Bibliothek ist sehr leicht zu benutzen. Es bietet ein paar C Funktionen um Zip Dateien zu öffnen, ändern und co. Und man muss nur paar .cpp Dateien zum Projekt hinzufügen um es benutzen zu können. Abhängigkeiten hat es keine außer Windows.

Re: C++ zip-Bibliothek

Verfasst: 23.04.2013, 21:30
von hagbard
Mir würde noch 7zip einfallen als alternativer Standard. Dazu gibt es auch ein freies SDK, habe aber keine Ahnung wie intuitiv sich das benutzen lässt...

Re: C++ zip-Bibliothek

Verfasst: 24.04.2013, 10:13
von Jonathan
Hm, Windows als Abhängigkeit ist leider doof, weil es am besten auch unter Mac laufen sollte. 7zip hab ich mir auch mal angesehen, das SDK ist allerdings recht mächtig und sieht für mich zu komplex für eine doch eigentlich recht leichte Aufgabe aus (die meisten Features brauche ich ja auch überhaupt nicht). Mein bisheriger Plan ist zlib+minizip, naja. Freut mich nicht unbedingt, aber andererseits kann das so hässlich ja auch nicht sein.

Re: C++ zip-Bibliothek

Verfasst: 24.04.2013, 10:25
von Thoran
Alternativ würde ich mal generell nach virtuellen Dateisystemen suchen. Als spontanes Beispiel fällt mir da OFS (Ogitor File System) ein, welches Bestandteil des Repositories des Szeneneditors Ogitor ist. Damit kann man seine Dateien in einer Datei über ein VFS lesen und schreiben. Ich bin jetzt nicht sicher in wie weit da ein Editor zum Erzeugen solcher OFS-Dateien dabei war, da es schon ne Weile her ist, dass ich damit gearbeitet habe. Die OFS-Bibliothek bleibt dabei recht klein mit entsprechend kleinem Interface. OFS hat keine Kompression und auch nix mit ZIP zu tun.