Bu sorunun Stackoverflow üzerinde daha önce sorulmuş olduğunu biliyorum, ancak bir açıklama bulamadım.StreamReader ReadToEnd() ilk denemede boş dizgi döndürür
Sıkıştırılmış bir bayt dizisinden bir dize okumaya çalıştığımda, ilk denemede boş bir dize alıyorum, ikincisinde, ipliğim ve dizeyi aldım.
Kod örnek: Tüm önerileri takdir edilmektedir
public static string Decompress(byte[] gzBuffer)
{
if (gzBuffer == null)
return null;
using (var ms = new MemoryStream(gzBuffer))
{
using (var decompress = new GZipStream(ms, CompressionMode.Decompress))
{
using (var sr = new StreamReader(decompress, Encoding.UTF8))
{
string ret = sr.ReadToEnd();
// this is the extra check that is needed !?
if (ret == "")
ret = sr.ReadToEnd();
return ret;
}
}
}
}
. - Victor Cassel
Denetime ihtiyacın olduğunu düşünmüyorum, gereksiz görünüyor. – Nick