Проблема при упаковке потока с помощью GZipStream - на выходе получается пустой поток
Добрый день. Код считывает файлы с диска, упаковывает их и пишет в блоб-поле в БД.
Некоторые файлы проходят без проблем, а на некоторых наблюдается следующее: после упаковки размер стрима равен 10 байт (хотя источник например 11 килобайт). При попытке распаковать такой стрим он распаковывается в нулевой (длина равна нулю), никаких исключений не возникает.
код упаковки:
public void CompressFrom(Stream src) // src.Lenth == 11900
{
using (var ms = new MemoryStream())
using (var gz = new GZipStream(ms, CompressionMode.Compress, false))
{
src.Position = 0;
src.CopyTo(gz);
Data = ms.ToArray(); // ms.Length == 10 ! WTF?!
}
}
На входе FileStream. И при этом часть файлов запаковывается совершенно нормально, а другая часть - вот так. Выручайте, сломал всю голову уже )