В этом вопросе,чтения памяти отображается файл или зная его размер, чтобы прочитать его correctely
есть проблема, (int)stream.Length
не дает мне правильную длину, она скорее дает размер самого используется внутренний буфер! Мне нужно обновить этот вопрос, потому что это очень важно.
Основной вопрос был:
мне нужно что-то похожее на ReadToEnd или ReadAllBytes прочитать все содержимое, используя отображение файла в память 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));
}
}
}
}
В этом вопросе:
Там нет точного ответа точного вопроса! вопрос касается чего-то другого, кроме названия.
Помог ли этот ответ? http://stackoverflow.com/a/8613300/2258 Или ответ Джона Скита: http://stackoverflow.com/a/221941/2258 –
Не работает, он дает мне 4096 байт, даже если файл пуст :( –
Просто напишите длину потока, а также в начале представления. –