假设您只想读取文件的一部分,这样的事情应该有效:
long offset = 0x10000000; // 256 megabytes
long length = 100;
using (MemoryMappedFile mmf = MemoryMappedFile.CreateFromFile(@"c:\Test.data"))
{
using (MemoryMappedViewStream stream = CreateViewStream(offset, length))
{
byte[length] bytes;
int bytesRead = stream.Read(bytes, 0, (int)length);
}
}
Run Code Online (Sandbox Code Playgroud)
如果你想阅读整个文件,你真的不应该首先使用一个MemoryMappedFile对象.