Zippen unter Linux



  • Hallo zusammen,

    ich habe folgendes Problem: In einem selbstgeschriebenen QT-Programm
    lege ich verschiedene Daten in unterschiedlichen Dateien ab. Dies
    ist sinnvoll, weil die Daten sich teilweise stark unterscheiden.
    Nun möchte ich alle diese vielen kleinen Dateien zu einer einzigen
    zusammenführen (also zum Beispiel in ein tar.gz-file, so wie
    OpenOffice das macht) und diese datei dann verschlüsseln. Die
    Verschlüsselung habe ich schon hinbekommen (benutze einen Open-SSL-
    Blowfish-Cypher, da das Programm sowieso OpenSSL verwendet).
    Jetzt die Preisfrage: Wie stelle ich das mit dem Verpacken an?
    Gibt es da irgendwo ein gutes Beispiel-Script um Dateien und Ordner
    mit Hilfe der zlib zu verpacken? ich habe in dieser Hinsicht nicht
    viel gefunden... bisher funktioniert das ganze über einen Systemaufruf:
    system("tar ..."), wobei ich mich aber dagegen streube Unix-Systemaufrufe
    zu verwenden. Gegebenenfalls soll das Projekt ja irgendwann nochmal
    auf einen anderes Betriebsystem portiert werden können.

    MFG ironman



  • ironman schrieb:

    system("tar ..."), wobei ich mich aber dagegen streube Unix-Systemaufrufe
    zu verwenden. Gegebenenfalls soll das Projekt ja irgendwann nochmal
    auf einen anderes Betriebsystem portiert werden können.

    Tar ist kein Systemaufruf, sondern ein Programm. Wenn du portierst, dann kanst du das programm tar gleich mit ausliefern.
    Die zlib kann nur kompriemieren. Du musst also dein eigene Archivierungsfunktion schreiben, die alle Dateien in eine Packt und dann mit der zlib kompriemieren.



  • tar ist ja POSIX standardisiert, auch wenn die GNU Version sich wohl nicht 100% dran hält.

    http://www.unix.org/version3/ieee_std.html



  • Hi ironman,

    sowas lässt sich sehr schön mit Python realisieren, da sind sogar Module dabei um direkt mit Zip-gepackten Verzeichnissen zu arbeiten.

    Gruß

    Dookie



  • Python_Dookie: Nix gegen Python, aber er hat ja schon ein C++-Programm, in das er was passendes einbauen möchte.


Anmelden zum Antworten