Ich habe eine gezippte Datei mit einer Größe von mehreren GB, möchte die Größe des entpackten Inhalts erreichen, möchte aber die Datei nicht in C # entzippen. Was könnte die Bibliothek sein, die ich benutzen kann? Wenn ich mit der rechten Maustaste auf die .gz-Datei klicke und zu Eigenschaften gehe, dann gibt es unter dem Archive
Tab einen Eigenschaftsnamen TotalLength
, der diesen Wert anzeigt. Aber ich möchte es programmgesteuert mit C # .. Irgendeine Idee?
Der letzte für Bytes einer .gz-Datei ist die unkomprimierte Eingabegröße modulo 2 ^ 32. Wenn Ihre unkomprimierte Datei nicht größer als 4 GB ist, lesen Sie einfach die letzten 4 Bytes der Datei. Wenn Sie eine größere Datei haben, bin ich mir nicht sicher, ob das möglich ist, ohne den Stream zu dekomprimieren.
EDIT: Siehe die Antworten von Leppie und Gabe; der einzige Grund, warum ich dies behalte (anstatt es zu löschen) ist, dass es notwendig sein kann, wenn Sie vermuten, dass die Länge & gt; 4GB
Für gzip scheinen diese Daten nicht direkt verfügbar zu sein - ich habe mir GZipStream
und die SharpZipLib
Wenn es ein Zip war, dann SharpZipLib:
%Vor%