如何删除内存映射文件?

时间:2012-05-08 14:48:44

标签: c# memory-mapped-files memory-mapping

我使用内存映射文件,在完成工作后,我想从磁盘中删除文件。但我在File.Delete(fileName)中有UnauthorizedAccessException;我已阅读here我应该使用“使用”,但我使用了几个文件,所以我有MemoryMappedFileAccessor的数组。 我的代码:

var mmf_acc_array = new MemoryMappedViewAccessor[numFiles];
var size = 1048576; //1Mb
var mmf = new MemoryMappedFile[numFiles];
for (int i = 0; i < numFiles; i++)
{
mmf[i] = MemoryMappedFile.CreateFromFile(Path.Combine("tmp", "tmp" + i.ToString()));
mmf_acc_array[i] = mmf[i].CreateViewAccessor(0, size);
}

do sm work

for (int i = 0; i < numFiles; i++)
{
mmf_acc_array[i].Dispose();
mmf[i].Dispose();
File.Delete(Path.Combine("tmp", "tmp" + i.ToString()));
}

File.Delete()中出现异常;我怎样才能释放文件?

0 个答案:

没有答案