Ich habe zwei Dateien (ich 7zip verwenden): n1.txt.gz und n2.txt.gz. Dann habe ich sie in die Datei n12.txt.gz durch Eingabeaufforderung kombinieren:Wie bestimmt GZipStream die Größe von komprimierten Daten
type n1.txt.gz > n12.txt.gz
type n2.txt.gz >> n12.txt.gz
Wenn ich die Datei n12.txt.gz von 7-Zip entpacken, werde ich kombiniert bekommen Original-Dateien (n1 dekomprimiert. txt + n2.txt). Aber wenn ich diesen Code verwenden
public static void Decompress2(String fileSource, String fileDestination, int buffsize)
{
using (var fsInput = new FileStream(fileSource, FileMode.Open, FileAccess.Read))
{
using (var fsOutput = new FileStream(fileDestination, FileMode.Create, FileAccess.Write))
{
using (var gzipStream = new GZipStream(fsInput, CompressionMode.Decompress))
{
var buffer = new Byte[buffsize];
int h;
while ((h = gzipStream.Read(buffer, 0, buffer.Length)) > 0)
{
fsOutput.Write(buffer, 0, h);
}
}
}
}
}
ich zum ersten Teil n12.txt.gz nur dekomprimiert erhalten wird, dekomprimiert das heißt n1.txt.
Warum stoppt GZipStream nach dem ersten Teil der kombinierten Datei? Und wie dekomprimiert 7zip die ganze Datei?
Ich bezweifle wirklich, dass die Kombination von gezippten Dateien funktioniert wie du sagst ... –
@ThorstenDittmar es funktioniert. Probiere es einfach. – Andrei