Чтение файла с отображенной памятью или знание его размера для правильного чтения
В этом вопросе
есть проблема,(int)stream.Length
не дает мне правильную длину, а скорее дает размер используемого внутреннего буфера! Мне нужно обновить этот вопрос, потому что это очень актуально.
Главный вопрос был:
Мне нужно что-то похожее на ReadToEnd или ReadAllBytes для чтения всего содержимого MemoryMappedFile с помощью MappedViewAccessor, если я не знаю его размера, как я могу это сделать?
Я искал это, я видел этот вопрос, но это не то, что я ищу:
Как я могу быстро прочитать байты из файла сопоставленной памяти в .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));
}
}
}
}
В этом вопросе:
Длина отображаемого в память файла
Нет точного ответа на точный вопрос! вопрос о чем-то другом, кроме названия.