本日は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");