protected override void Process(FileInfo inputFile, FileInfo outputFile) { using (Stream compressedStream = new GZipCorrectMultipartStream(inputFile.OpenRead()), decompressedStream = outputFile.OpenWrite()) { while (compressedStream.Position < compressedStream.Length) { using (var zipStream = new GZipStream(compressedStream, CompressionMode.Decompress)) { zipStream.CopyTo(decompressedStream, _bufferSize); } } } }
public void Read(Stream stream) { var index = 0; using (var compressedStream = new GZipCorrectMultipartStream(stream)) { while (compressedStream.Position != compressedStream.Length) { MemoryStream memoryStream; using (var zipStream = new GZipStream(compressedStream, CompressionMode.Decompress)) { using (memoryStream = new MemoryStream()) { zipStream.CopyTo(memoryStream, _bufferSize); } if (_queuesToWrite[index].Enqueue(memoryStream.ToArray())) { break; } index = (index + 1) % _queuesToWrite.Length; } } } Stop(); }