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