Leia o arquivo mapeado na memória ou saiba seu tamanho para lê-lo corretamente
Nesta questão,
existe um problema, o(int)stream.Length
não está me dando o tamanho correto, mas sim o tamanho do buffer interno usado! Eu preciso atualizar esta questão porque é muito urgente.
A questão principal era:
Eu preciso de algo semelhante a ReadToEnd ou ReadAllBytes para ler todo o conteúdo do MemoryMappedFile usando o MappedViewAccessor se eu não sei o tamanho dele, como posso fazê-lo?
Eu procurei por isso, eu vi essa pergunta, mas não é a coisa que estou procurando:
Como posso ler rapidamente bytes de um arquivo mapeado de memória no .net?
A velha resposta foi:
bar
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));
}
}
}
}
Nesta pergunta:
Comprimento de arquivo mapeado de memória
Não há resposta exata da pergunta exata! a questão é sobre algo mais que o título.