ファイルが実際にインターネット上にあるときに、メモリ マップ ファイルを使用して、Windows でファイルを開くことを仮想化したいと考えています。
したがって、メモリマップファイルを次のように作成します。
// data that we write to the file. we will get this a tcp
var data = System.Text.Encoding.UTF8.GetBytes("Hello World");
var fileStream = new FileStream("SomeFile.txt", FileMode.Create);
using (MemoryMappedFile memoryMapped = MemoryMappedFile.CreateFromFile(fileStream, "MapName", 1024,
MemoryMappedFileAccess.ReadWrite, new MemoryMappedFileSecurity(), HandleInheritability.Inheritable, true))
{
var viewStream = memoryMapped.CreateViewStream();
viewStream.Write(data, 0, data.Length); // write hello world
}
そして、Windowsでそれを読み取ることはできますが、保存することはできません:
ファイルを開くことができた方法に注意してください(その間、データはハードディスクではなくメモリ上にありました)が、変更を保存しようとした瞬間、できませんでした。したがって、私の質問は次のとおりです。実際にディスクに何も保存しようとせずに、そのファイルへの変更の保存を有効にして、メモリマップされたファイルのメモリ内のコンテンツを変更するにはどうすればよいですか。