从指定位置读取文件部分字节报错
小弟是个新手,想从指定偏移值处读取文件剩余的字节
long LeftOffset = 16875520;//偏移值
FileStream fs = new FileStream(Path.Combine(_rootfilepath, filename), FileMode.Open);
long TotalLen = fs.Length;//获得的文件长度是134217728
byte[] ReadByte = new byte[TotalLen - LeftOffset];
fs.Read(ReadByte,(int)LeftOffset,(int)(TotalLen - LeftOffset));//报错
报的错误是:“偏移量和长度超出数组的界限,或者计数大于从索引到源集合结尾处的元素数量。”
我试了下,TotalLen - LeftOffset = 117342208
然后我把报错代码改成
fs.Read(ReadByte,(int)LeftOffset,(int)(117340000));
我想问问大家
按理说已经比(TotalLen - LeftOffset)小了,为什么还是报如上的错误啊
如果要获取文件的剩余部分并保存的byte[]数组中的话,应该怎么改才不报这个错啊
------解决方案--------------------提示你,流剩余的长度不够你读取的长度
------解决方案--------------------fs.Read(ReadByte,(int)LeftOffset,(int)(TotalLen - LeftOffset-1));
你F12看看这个Read定义。。应该有写读取范围吧?