Wie kann ich zip Dateien, die mithilfe von C++?
Arbeite ich an einem Projekt mit C++, Boost und Qt. Ich verstehe, wie zu komprimieren einzelne Dateien und bytestreams verwenden, zum Beispiel, die qCompress () - Funktion in Qt.
Wie kann ich die zip in einem Verzeichnis mehrere Dateien, einschließlich der Unterverzeichnisse? Ich bin auf der Suche nach einem cross-Plattform (Mac, Win, Linux) - Lösung; ich würde lieber nicht das Feuer aus einem Haufen neuer Prozesse.
Gibt es einen standard-Weg zu verbinden bytestreams aus mehreren Dateien in einem Zip-Archiv, oder vielleicht gibt es eine Komfort-Funktion oder Methode, die zur Verfügung stehen würde, in den Boost-iostream-Bibliothek?
Vielen Dank für die Hilfe.
Update: Die QuaZip-Bibliothek sieht wirklich toll aus. Gibt es ein Beispiel im download-Paket (in den "tests" von dir), dass zeigt sehr deutlich, wie zip ein Verzeichnis von Dateien.
Update 2: Nach Abschluss dieser Aufgabe auf meinem Linux-build-Umgebung, entdeckte ich, dass QuaZip funktioniert überhaupt nicht mit den Visual Studio-compiler. Es kann sein, möglich, gegen all diese compiler-Fehler, aber ein Wort der Vorsicht für alle, die sich auf diesem Weg.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich die folgenden zwei Bibliotheken:
Ah, und ich habe natürlich Riss diese Websites von diese Qt-Mailingliste Frage zu Zippen/Entpacken von Verzeichnissen 🙂
http://www.zlib.net/
Nur für das Protokoll...
Heute, ich musste etwas tun, sehr ähnlich wie in Visual C++. (Obwohl unterhalten wollten, die Möglichkeit, das Projekt zu kompilieren auf anderen Plattformen; jedoch vorgezogen nicht zu übernehmen Qt nur für diesen Zweck.)
Endete mit der Minizip Bibliothek. Es ist geschrieben in plain C, aber bei der Ausarbeitung eines einfachen C++ - wrapper um ihn herum war ein Kinderspiel, und das Ergebnis funktioniert Super, zumindest für meine Zwecke.
Versuchte ich QuaZIP 0.4.3 unter Windows mit VisualStudio 2010-es gibt immer noch Probleme, die aber gelöst werden können, leicht.
Zu bauen, mit VS:
Ich gebaut habe, ein wrapper um minizip hinzufügen von ein paar features, die ich brauchte, und machen es schöner, es zu benutzen. Ist nicht die neuesten c++11-und entwickelt wird mit Visual Studio 2013, so sollte es funktionieren out-of-the-box für Sie.
Gibt es eine ausführliche Beschreibung hier: https://github.com/sebastiandev/zipper
können Sie zip-ganze Ordner, Bäche, Vektoren, etc. Auch ein nettes feature ist dabei alles komplett im Speicher.