Lesen Sie die mit dem Speicher verknüpfte Datei oder kennen Sie ihre Größe, um sie korrekt zu lesen
In dieser Frage
Es gibt ein Problem, das(int)stream.Length
gibt mir nicht die richtige Länge, sondern die Größe des verwendeten internen Puffers an! Ich muss diese Frage auffrischen, weil sie sehr dringend ist.
Die Hauptfrage war:
Ich benötige etwas Ähnliches wie ReadToEnd oder ReadAllBytes, um den gesamten Inhalt der MemoryMappedFile mit dem MappedViewAccessor zu lesen. Wie kann ich das tun, wenn ich die Größe nicht kenne?
Ich habe danach gesucht, ich habe diese Frage gesehen, aber es ist nicht das, wonach ich suche:
Wie kann ich schnell Bytes aus einer Speicherzuordnungsdatei in .NET lesen?
Die alte Antwort war:
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));
}
}
}
}
In dieser Frage:
Es gibt keine genaue Antwort auf die genaue Frage! Die Frage handelt von etwas anderem als dem Titel.