2012-12-22 43 views

回答

6

假設你只需要讀取文件的一部分,這樣的事情應該工作:

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); 
     } 
    } 

如果你想閱讀整個文件,你真的不應該使用在MemoryMappedFile對象第一個地方。

+1

請注意,'stream.Read'可能會讀取長度小於'bytes'字節的字節。 – dtb

+0

@dtb好點,那還不清楚。我更新了我的答案。謝謝! –

+0

你知道如何在Compact Framework中使用相同的技巧嗎? – Kostadin