Я пытаюсь сжать некоторый текст в приложении UWP. Я создал этот метод, чтобы сделать его проще в дальнейшем:Сжатие GZIPStream всегда возвращается 10 байт
public static byte[] Compress(this string s)
{
var b = Encoding.UTF8.GetBytes(s);
using (MemoryStream ms = new MemoryStream())
using (GZipStream zipStream = new GZipStream(ms, CompressionMode.Compress))
{
zipStream.Write(b, 0, b.Length);
zipStream.Flush(); //Doesn't seem like Close() is available in UWP, so I changed it to Flush(). Is this the problem?
return ms.ToArray();
}
}
Но, к сожалению, это всегда возвращает 10 байт, независимо от того, что ввод текста. Это потому, что я не использую .Close()
на GZipStream
?
Да, это работает как очарование! Я попытался использовать '.Dispose()' before, но вместо того, чтобы использовать его вне блока using(), я просто вызвал его перед возвратом данных, и это привело к тому, что 'ms' также удалился. Благодаря! – Reynevan