2009-08-03 25 views
6

Ich arbeite an einem kommerziellen Projekt, bei dem einige Dateien in einem Archiv gebündelt (gepackt) und dann komprimiert werden müssen. Im Moment haben wir zlib in unserer Utility-Bibliothek, aber es sieht nicht wie zlib die Funktionalität hat, um mehrere Dateien in ein Archiv zu komprimieren. Kennt jemand freie Bibliotheken, die ich dafür verwenden könnte?C/C++ Packen und Komprimieren

Antwort

7

Vielleicht libtar? Auch unter einer BSD-Lizenz.

+0

Es sieht aus wie Libtar ist eine gute Lösung für dieses Projekt. Vielen Dank für Ihre schnellen Antworten. – Justin

3

Sie könnten libzip verwenden - es ist unter einer BSD-ähnlichen Lizenz, so dass es in einem kommerziellen Projekt verwendet werden sollte.

2

Um mehrere Dateien in einem ZIP-Archiv komprimieren Sie Zipios++

12

7Zip hat eine full SDK für mehrere Sprachen, darunter C und C++ verwenden könnte. Die Kompression ist extrem gut, wenn auch nicht sehr schnell. Der Code ist unter der LGPL lizenziert.

+0

7Zip hat auch gute Unterstützung für die AES-Verschlüsselung. –

+2

Ich persönlich bin ein Fan von 7Zip, aber die LGPL könnten Probleme in dieser Situation führen. – Justin

+0

Der LZMA-SDK-Teil von 7-Zip befindet sich in der Public Domain, sodass keine LGPL-Bedenken bestehen. Wenn Sie alle 7-Zip-Funktionen (nicht nur LZMA) möchten, dann ist 7-Zip selbst unter der LGPL, aber dies ist kein Problem für kommerzielle Anwendungen, solange Sie es in einer DLL, einschließlich einer Kopie der LGPL in Ihrer Distribution, und liefern Quelle auf Anfrage. –

-1

Schauen Sie sich auch bzip2.

+0

bzip2 kann mehrere Dateien nicht in ein Archiv komprimieren. In der Regel verwenden Sie tar, um alle Ihre Dateien zu einer Datei zusammenzufügen, bevor Sie sie an bzip übergeben. –