1
在這個問題上,讀取內存映射文件或者知道它的大小correctely閱讀
有一個問題,(int)stream.Length
不給我正確的長度,它,而給人的大小使用內部緩衝區!我需要刷新這個問題,因爲它非常緊迫。
的主要問題是:
我需要類似的東西ReadToEnd的或ReadAllBytes讀取所有的 使用MappedViewAccessor如果我 不知道它的大小,如何能在MemoryMappedFile的內容我這麼做?
...我已經尋找它,我已經看到了這個問題,但它不是 事情我要找:
如何快速從.NET內存映射文件讀取的字節?
舊的回答是:
酒館
public static ReadMMFAllBytes(string fileName)
{
using (var mmf = MemoryMappedFile.OpenExisting(fileName))
{
using (var stream = mmf.CreateViewStream())
{
using (BinaryReader binReader = new BinaryReader(stream))
{
return binReader.ReadBytes((int)stream.Length));
}
}
}
}
在這個問題上:
有確切的問題沒有確切的答案!問題是關於標題以外的其他問題。
此答案幫助嗎? http://stackoverflow.com/a/8613300/2258或Jon Skeet的回答:http://stackoverflow.com/a/221941/2258 – 2013-03-05 16:46:39
沒有工作,它給我4096字節,即使文件是空的:( – 2013-03-05 17:00:12
只需在視圖的開頭寫入流長度 – 2013-03-05 19:16:56