首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

从指定位置读取文件一部分字节报错

2013-10-15 
从指定位置读取文件部分字节报错小弟是个新手,想从指定偏移值处读取文件剩余的字节long LeftOffset 1687

从指定位置读取文件部分字节报错
小弟是个新手,想从指定偏移值处读取文件剩余的字节


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定义。。应该有写读取范围吧?

热点排行