【发布时间】:2012-01-23 08:18:06
【问题描述】:
是否可以像直接在windows中打开文件一样直接在C#中打开内存映射文件, 例如,我正在创建内存映射文件。通过以下代码。
using System;
using System.IO.MemoryMappedFiles;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
MemoryMappedFile mmf = MemoryMappedFile.CreateNew("test.txt", 5);
MemoryMappedViewAccessor accessor = mmf.CreateViewAccessor();
var arun = new[] {(byte)'a', (byte)'r', (byte)'u', (byte)'n'};
for (int i = 0; i < arun.Length; i++)
accessor.Write(i, arun[i]);
Console.WriteLine("Memory-mapped file created!");
Console.ReadLine(); // pause till enter key is pressed
accessor.Dispose();
mmf.Dispose();
}
}
}
我需要直接打开文件。是否可以通过
打开文件Process.start("test.txt");
来自另一个进程,而不是通过代码读取值。
MemoryMappedFile mmf1 = MemoryMappedFile.OpenExisting("test.txt");
MemoryMappedViewAccessor accessor1 = mmf1.CreateViewAccessor();
var value = accessor1.ReadByte(4);
是否可以直接打开内存映射文件?请告诉我。
【问题讨论】:
-
为什么使用内存映射文件只是为了对其进行简单的文件操作?
-
虽然是简单的文件操作但是很难直接从内存中访问是不是?
-
在您的代码中没有任何地方可以像读取内存一样访问内容。
-
@leppie:这是示例代码(“比如说”),旨在展示他想要实现的目标,他大概有一个合理的理由在他的真实代码中使用文件映射。
-
我仍然希望是实际文件,你没有帮助
标签: c# .net windows c#-4.0 memory-mapped-files