在这个问题中,
在不知道大小的情况下读取内存映射文件或内存映射视图访问器的所有内容
有一个问题,(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));
}
}
}
}
在这个问题中:
确切的问题没有确切的答案!问题是关于标题以外的东西。