MRが楽しい

MRやVRについて学習したことを書き残す

File.Create後にアクセスエラーが発生する問題の対処

本日はC#の小ネタ枠です。
File.Create後にアクセスエラーが発生する問題の対処です。

発生エラー

例えばFile.Createでファイルを生成した直後にFile.Deleteでファイルを削除しようとすると以下のIOExceptionが発生します。

IOException: The process cannot access the file (filepath) because it is being used by another process.

・サンプルコード

// ファイルを生成する
System.IO.File.Create("test.txt");

// ファイルを削除する
System.IO.File.Delete("test.txt");

原因はFile.Createではファイルが開かれたまま使用中になってしまい、ファイル削除が行えないことです。

対処方法

以下のようにCreate時にClose()を呼び出すことで、ファイルアクセスを一旦閉じる必要があります。

// ファイルを生成する
System.IO.File.Create("test.txt").Close();

// ファイルを削除する
System.IO.File.Delete("test.txt");