日期:2014-05-16  浏览次数:20879 次

一个很简单的内存映射文件读取失败,为什么?
我写了一个很短的代码来测试MemoryMappedFile:

    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                var mmf = MemoryMappedFile.CreateFromFile(@"d:\my.txt", FileMode.Open, "ImgA");
                var accessor = mmf.CreateViewAccessor(0, 20, MemoryMappedFileAccess.Read);
                byte b= accessor.ReadByte(0);
                Console.WriteLine(b);
            }
            catch (Exception e) 
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
            }
        }
    }

在我的电脑上D:\my.txt的内容就是abc这3个字母。但是我运行这个程序的结果是:
Access to the path is denied.

这是为什么呢? 难道有什么参数我指定的不对吗? 如何成功的读取呢?
------解决方案--------------------
权限不足,以管理员权限运行一下。
------解决方案--------------------
CreateFromFile和CreateViewAccessor 哪个报错啊?