1

我正在写入一个文件流,当我想关闭一个文件时,我更新了文件的一些位置值,因为我读出了FileStream.Position这个值,当文件大小为 2 GB 时这个值是负数,怎么可能有负值位置 ?

Folling 是我正在使用的代码。

int SomePosition = 78;
long lastPos = _fileStream.Position;
_fileStream.Position = SomePosition;
byte[] bArray = BitConverter.GetBytes(someValue);
_fileStream.Write(bArray, 0, bArray.Length);
_fileStream.Position = lastPos;

在上面的代码long lastPos = _fileStream.Position; lastPos中变为负数。

4

1 回答 1

2

您是否尝试将值存储在int变量中?

FileStream.Position是 a long,并且将高于 a 的值转换为 aint.Maxvalue可能int会导致负值。

于 2013-09-05T08:30:48.683 回答