У меня есть код, который загружает сжатые файлы и распаковывает их. Проблема в том, что я не могу заставить его распаковать весь файл, он читает только первые 4096 байт, а затем еще около 500.
Byte[] buffer = new Byte[4096];
int count = 0;
FileStream fileInput = new FileStream("input.gzip", FileMode.Open, FileAccess.Read, FileShare.Read);
FileStream fileOutput = new FileStream("output.dat", FileMode.Create, FileAccess.Write, FileShare.None);
GZipStream gzipStream = new GZipStream(fileInput, CompressionMode.Decompress, true);
// Read from gzip steam
while ((count = gzipStream.Read(buffer, 0, buffer.Length)) > 0)
{
// Write to output file
fileOutput.Write(buffer, 0, count);
}
// Close the streams
...
Я проверил загруженный файл; 13 МБ при сжатии и содержит один XML-файл. Я вручную распаковал XML-файл, и все содержимое там. Но когда я делаю это с этим кодом, он выводит только самое начало XML-файла.
У кого-нибудь есть идеи, почему это может происходить?