Mit kompriemierte Archive arbeiten

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Benutzeravatar
Andi
Beiträge: 81
Registriert: 12.03.2009, 00:19

Mit kompriemierte Archive arbeiten

Beitrag von Andi »

Hallo ihr lieben...

Hab mal wieder eine, so denke ich, sehr triviale frage. Es geht, wie es im Titel steht, um die Arbeit mit komprimierten Archive wie beispielsweise "ZIP". Ich selbst habe absolut keine Ahnung welche möglichkeiten man hat, und welche freie Lib`s es giebt. Würde mich sehr um Unterstützugn freuen.
Ich hab nun 2 Tage gegoogelt und schlussendlich komm ich immer auf zlib.net resp. glib.org. Doch auf der Seite finde ich nichts, woraus ich schlauer werde.

Ich möchte für mein aktuelles Projekt, die Mäglichkeit integrieren, Dateien und Ordner aus/in Archive zu lesen/schreiben. Ich dachte mir möglichst die aktuellsten Formate zu unterstützen: "ZIP", "RAR", "7ZIP", "TAR" und "GZIP". Welche lib`s und How-to`s kennt ihr um das zu Handeln? Ich möchte möglichst wenig selber machen ;)

Soweit ich es nun beurteilen kann, kann ich "ZIP" mit der zlib und "GZIP" mit der glib lesen und schreiben, ist das so weit korrekt?

Gruss

Andi
Benutzeravatar
Sylence
Beiträge: 2
Registriert: 06.08.2008, 13:58
Kontaktdaten:

Re: Mit kompriemierte Archive arbeiten

Beitrag von Sylence »

Ich beziehe mich hier auf ZIP, weil ich von den anderen Formaten nicht weiß wie es da ist.

In nem ZIP ist es einfach so, dass du theoretisch jeden Kompressionsalgorithmus verwenden kannst. zlib alleine öffnet keine zip dateien, sondern ist lediglich für die kompression zuständig.

Fertige ZIP reader sind mir nicht bekannt, aber wenn du wissen willst wie das genau funktioniert kannst du dir ja mal den source von 7-zip angucken.
Benutzeravatar
Krishty
Establishment
Beiträge: 8250
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Mit kompriemierte Archive arbeiten

Beitrag von Krishty »

Ich kenne zwar keine Antworten, aber ich finde die Frage etwas unpräzise …

Willst du erst normale Dateien schreiben und die dann komprimieren, oder willst du on-the-fly komprimieren? Sollen Kompression und Extrahierung gleich schnell sein (symmetrisch), oder darf die Kompression langsamer sein? Wie hoch möchtest du überhaupt komprimieren? („so hoch wie möglich“ → PAQ8) Und in erster Linie: was möchtest du komprimieren?

Je nach Szenario sollten da ganz unterschiedliche Algorithmen zusammen kommen.

Falls es darum geht, den Festplattenhunger einer Anwendung zu verringern, kann die NTFS-eigene Kompression ganz nützlich sein … die ist zwar nicht allzu effektiv, dafür aber sehr schnell und, vor allem, komplett transparent durch das OS.

Ansonsten kannst du auch Drittprogramme von deiner Anwendung aus aufrufen und deine Dateien als Kommandozeilenparameter übergeben - so optimiere ich meine Screenshots. In dem Fall musst du nur auf die Lizenzen der Programme achten.

Wenn du eigene und spezielle Daten komprimieren möchtest, lohnt es sich wahrscheinlich, dafür spezielle, komprimierte Formate zu entwickeln bzw. auszusuchen, denn wenn du eine spezielle Vorstellung davon hast, was du komprimierst, erreichst du oft höhere Kompressionsraten, als wenn du einen allround-Algorithmus über ein Byte-Array jagst. (Z.B. wird ein gutes PNG immer kleiner sein als eine gepackte Bitmap, eine FLAC-Audio immer kleiner als eine gepackte WAV, etc)

Gruß, Ky
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Andi
Beiträge: 81
Registriert: 12.03.2009, 00:19

Re: Mit kompriemierte Archive arbeiten

Beitrag von Andi »

Danke euch beiden

Also ich würde i.d.R. Zip-/RAR-Archive bekommen dort sind in Ordner (Unterordner) Dateien, was für format die sind weiss ich nicht :) Der Inhalt dieser Zip/RAR müssen für ein Tool extrahiert werden. Da die Dateien so nur überschrieben werden, will ich dan die Original-Dateien nicht überschreiben sondern sie als Zip auf der Platte abspeichern. Das wäre dan ein hin und her, nennen wir es der Einfachheits halber "File-Manager". Hoffe mein Konzept wir nun entwas klarer.

Ein tolles Feater wäre auch wen man sich, im Baukastenstiel jeweils aus diversen Archive Dateie extrahiert könnte, und es in ein Zip zu Archivieren. Dies wäre jedoch nicht unbedingt notwendig.

Das alles ist für ein Freund müsste selbst noch genauer wissen für was er das braucht, werde ich gleich machen ;) Wollte mich jedoch schon schlauer machen.

Melde mich gleich wieder...
Helmut
Establishment
Beiträge: 237
Registriert: 11.07.2002, 15:49
Wohnort: Bonn
Kontaktdaten:

Re: Mit kompriemierte Archive arbeiten

Beitrag von Helmut »

Also für Zip+Windows kann ich nur diese Library empfehlen. Sehr einfach zu benutzen.

Ciao
Benutzeravatar
Andi
Beiträge: 81
Registriert: 12.03.2009, 00:19

Re: Mit kompriemierte Archive arbeiten

Beitrag von Andi »

Also es handelt sich um einen "Mod"-Manager für ein Spiel. Der Inhalt der Dateien ist unterschiendlich, von Texturen, Sound, Level/Maps, etc.

@Helmut
das sieht schon sehr Edel aus, werde damit gleich mal etwas experimentrieren
Antworten