Beim Speichern oder Übertragen von Dateien müssen Daten oder Dateien komprimiert werden, um Speicherplatz und Datenverkehr zu sparen. Hier sprechen wir über Datenkompression durch C#.
GZipStream-Kompression Microsoft bietet Methoden zur Komprimierung und Dekomprimierung von Strömen.
Diese Klasse steht für GZip Data Format, das branchenübliche Algorithmen für verlustfreie Kompression und Dekompression von Dateien verwendet. Dieses Format beinhaltet einen zyklischen Redundanzkontrollpunkt, der Datenkorruption erkennt. Das GZip-Datenformat verwendet denselben Algorithmus wie die DeflateStream-Klasse, kann aber auf andere Kompressionsformate erweitert werden. Dieses Format kann leicht so umgesetzt werden, dass keine patentgerechten Nutzungsrechte erforderlich sind.
Komprimierte GZipStream-Objekte, die in Dateien mit der Endung .gz geschrieben werden, können mit einer Reihe gängiger Kompressionswerkzeuge dekomprimiert werden; Sie bieten jedoch keine Funktionalität zum Hinzufügen oder Extrahieren von Dateien aus .zip.zip Archiven.
Die Kompressionsfunktion in DeflateStream und GZipStream ist als Stream verfügbar. Da Daten byte für Byte gelesen werden, ist es nicht möglich, die beste Komprimierung einer gesamten Datei oder eines großen Datenblocks durch mehrere Durchgänge zu bestimmen. Für unkomprimierte Datenquellen ist es am besten, die Klassen DeflateStream und GZipStream zu verwenden. Wenn die Quelldaten komprimiert sind, kann man die Größe des Stroms tatsächlich erhöhen, wenn man diese Klassen verwendet. Der Code lautet wie folgt:
|