GZipStream

05/10/2007 - 12:42 von Christian Mauerer | Report spam
Hallo,

ich möchte eine Funktion integrieren, mit welcher eine Datei gezippt wird.
Dazu gibt es ja das Beispiel von Microsoft.

http://msdn2.microsoft.com/en-us/li...tream.aspx

Doch irgendwie klappt das nicht.
Ich bin mir nicht Sicher, ob ich das auch richtig verstehe.

Zuerst werden die Daten eingelesen.

Dann wir ein MemoryStream erstellt, in welchen die gezippten Daten
geschrieben werden.
Ist das so richtig?

Und wie bekomme ich dann diese Daten in eine zip-Datei?

Vielen Dank und schöne Grüße

Christian
 

Lesen sie die antworten

#1 Günter Prossliner
05/10/2007 - 13:17 | Warnen spam
Hallo Christian!

Ich bin mir nicht Sicher, ob ich das auch richtig verstehe.



Nein.

Dann wir ein MemoryStream erstellt, in welchen die gezippten Daten
geschrieben werden.
Ist das so richtig?



Ja.


Und wie bekomme ich dann diese Daten in eine zip-Datei?



GZip ist ein Streaming Orientierter Komprimierings-Alogrithmus. In einen
GZip Stream welcher im "Komprimieren" Modus ist, werden alle Bytes welche in
den Stream geschrieben werden, in den Base-Stream komprimiert geschrieben.
Im "Dekomprimieren" Modus, wird bei einem Read auf den Stream, zunàchst die
komprimierten Daten aus dem Base-Stream gelesen, dekomprimiert, und in
dieser Form zurückgegeben.

Ein GZipStream ist also eine Pipeline, kein Archiv.

Ein GZipStream ist KEINE Zip-Datei! Eine Zip-Datei definiert selbst
Metadaten (eine Form eines Inhaltsverzeichnisses, Recovery-Block, ggf.
werden die Daten auch verschlüsselt). GZip ist die reine Komprimierung. Ein
über den GZipStream geschriebene Datei wàre maximal eine ".gz" Datei (ob das
von gàngigen Zip-Programmen gelesen werden kann musst Du selbst versuchen).

Wenn Du wirklich eine ZIP-Datei benötigst kannst Du:
* über Process.Start() einen Konsole-Zipper aufrufen
* eine Komponente wie z.b. "sharpziplib" (Achtung GPL!) verwenden
* eventuell selbst implementieren (ist aber sehr aufwàndig)


[.NET Zip Library #ziplib (SharpZipLib)]
http://www.icsharpcode.net/OpenSource/SharpZipLib/


OK?
mfg GP

Ähnliche fragen