1

CopyToで例外が発生するのはなぜですか? その下のコードは完璧に機能し、copyto が行うと思っていたものです。

using (var mem = new MemoryStream())
{
    using (var memin = new MemoryStream(v.body))
    using (var comp = new BZip2InputStream(memin))
    {
        //comp.CopyTo(mem); //Non-negative number required (System.ArgumentOutOfRangeException)
        var buf = new Byte[1024 * 4];
        int len=0;
        while ((len = comp.Read(buf, 0, buf.Length)) > 0)
        {
            mem.Write(buf, 0, len);
        }

    }
4

1 に答える 1

1

のバグですBZip2InputStream.Read(byte[] buffer, int offset, int count)。0 ではなく -1 を返します。バグを報告しました

また、CopyTo は、問題のコードのように >0 ではなく != 0 を介してチェックします。

于 2012-10-05T01:29:44.060 に答える