Problem with random access files (bug?)
- From: Erel <ereluziel@xxxxxxxxx>
- Date: Sat, 26 Apr 2008 13:15:05 -0700 (PDT)
There seems to be a problem in the .Net CF 2.0 (and 1.0) regarding
random access files.
After several usages of FileStream.Seek and FileStream.Read, wrong
values are returned.
The code from this post demonstrates this problem:
http://groups.google.com/group/microsoft.public.dotnet.framework.compactframework/browse_thread/thread/cf5970f09c81d50d/727be7bd89798b3b?lnk=gst&q=filestream+bug#727be7bd89798b3b
//create the test file
using (FileStream stream = new FileStream(@"test.dat",
FileMode.Create))
{
for (int i = 0; i < 1000; ++i)
{
stream.WriteByte((byte)(i % 256));
}
}
// demonstrate issue
using
(
FileStream stream = new FileStream(
@"test.dat", FileMode.Open,
FileAccess.Read, FileShare.Read, 128
)
)
{
byte[] buffer = new byte[500];
stream.Read(buffer, 0, 252);
stream.Read(buffer, 0, 102);
stream.Read(buffer, 0, 5);
stream.Read(buffer, 0, 63);
stream.Read(buffer, 0, 39);
stream.Read(buffer, 0, 34);
stream.Read(buffer, 0, 73);
stream.Read(buffer, 0, 73);
stream.Read(buffer, 0, 73);
stream.Read(buffer, 0, 73);
long pos = stream.Position;
stream.Read(buffer, 0, 73);
MessageBox.Show("Position: " + pos.ToString() + ",
value: " + buffer[0].ToString()
,"Should show 19");
stream.Seek(pos, SeekOrigin.Begin);
stream.Read(buffer, 0, 73);
MessageBox.Show("Position: " + pos.ToString() + ",
value: " + buffer[0].ToString()
,"Should show 19, shows 1 instead");
}
Same code works fine on the desktop.
Is this a known bug or limitation?
.
- Prev by Date: Re: Manage in unmanaged easier or unmanaged in managed
- Next by Date: Same Problem.
- Previous by thread: Broadcom bluetooth manager and virtual serial port
- Next by thread: Same Problem.
- Index(es):