2

メモリマップトファイルを使用していますが、作業が終了したら、ディスクからファイルを削除したいと思います。しかし、File.Delete(fileName);にUnauthorizedAccessExceptionがあります。ここで「using」を使用する必要があることを読みましたが、複数のファイルを処理するため、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();で例外が発生します。どうすればファイルを解放できますか?

4

0 に答える 0