是否有人在使用时遇到以下错误。净放气流?
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at System.IO.Compression.HuffmanTree.CreateTable()
at System.IO.Compression.Inflater.DecodeDynamicBlockHeader()
at System.IO.Compression.Inflater.Decode()
at System.IO.Compression.Inflater.Inflate(Byte[] bytes, Int32 offset, Int32 length)
at System.IO.Compression.DeflateStream.Read(Byte[] array, Int32 offset, Int32 count)
解压从磁盘读取的放气流时会发生此错误。我使用的是简单的索引文件,其中包含许多小的deflate编码块。这是一个
非常
罕见的错误,因为在几十万(或百万)个压缩项中只有一个会出现这种错误。
似乎是赫夫曼树。CreateTable方法异常,该例程尝试填充超出其限制的数组。
我曾尝试分配一个大小为原始数组两倍的数组进行解压缩,但它仍然会抛出错误。
解码后的数据似乎完好无损,但例程仍在尝试解码并溢出缓冲区。
我想我可以尝试/捕捉并检测是否发生了这个错误,然后尝试处理它。
如能深入了解该问题,将不胜感激。
(我尝试过DotNetZip,它在我工作的64位环境中引发了不同的问题。)