当该文件真正在互联网上时,我想使用内存映射文件来虚拟化在 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 上读取它,但不能保存它:
请注意我是如何打开文件的(同时数据在内存而不是硬盘上),但是当我尝试保存更改时我无法打开。所以我的问题是:我如何能够保存对该文件的更改,而只是更改内存映射文件的内存中的内容,而不实际尝试将任何内容保存到磁盘。