我打算在系统卷信息子文件夹中打开内存映射文件。我知道并在资源管理器中看到它存在,并且路径正确(从资源管理器复制粘贴),而且该路径的File.Exists返回true,但是MemoryMappedFile.OpenExisting失败,出现DirectoryNotFoundException。为什么? (我拥有系统卷信息文件夹和子文件夹的所有权利)。

一些代码:

const string filePath = @"C:\\System Volume Information\\Foo\\2.ext";

bool exists = File.Exists(filePath); //is true
using (MemoryMappedFile bitmapFile = MemoryMappedFile.OpenExisting(filePath, MemoryMappedFileRights.Read)) //Throws DirectoryNotFoundException
{
    ...
}

最佳答案

您需要使用MemoryMappedFile.CreateFromFile("yourPathToFileInDisk", FileMode.Open,"WhateverName")来打开您需要的文件。 MemoryMappedFile.OpenExisting("WhateverName")尝试打开已经存在的内存映射文件。

10-07 20:09