Przeczytaj plik odwzorowany w pamięci lub znając jego rozmiar, aby go poprawnie odczytać
W tym pytaniu
jest problem(int)stream.Length
nie podaje mi prawidłowej długości, raczej podaje rozmiar używanego bufora wewnętrznego! Muszę odświeżyć to pytanie, ponieważ jest bardzo pilne.
Głównym pytaniem było:
Potrzebuję czegoś podobnego do ReadToEnd lub ReadAllBytes, aby odczytać całą zawartość MemoryMappedFile za pomocą MappedViewAccessor, jeśli nie znam jej rozmiaru, jak mogę to zrobić?
Szukałem tego, widziałem to pytanie, ale nie jest to rzecz, której szukam:
Jak mogę szybko odczytać bajty z pliku odwzorowanego w pamięci w .NET?
Stara odpowiedź brzmiała:
pub
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));
}
}
}
}
W tym pytaniu:
Długość pliku mapowanego pamięci
Nie ma dokładnej odpowiedzi na dokładne pytanie! pytanie dotyczy czegoś innego niż tytułu.