ファイルを確実に削除する
スポンサーリンク
System.IO.File クラスの Delete メソッドを、読み取り専用ファイルに対して実行すると例外が発生します。これは、削除する前に読み取り専用属性を外すことで解決します。
以下は、その処理を関数化したものです。読み取り専用属性だった場合でも削除したり、または削除をキャンセルする (例外は発生しない) ことができます。
サンプルコード
以下にサンプルコードを示します。
C# 全般
/// ----------------------------------------------------------------------------- /// <summary> /// 指定したファイルを削除します。</summary> /// <param name="stFilePath"> /// 削除するファイルまでのパス。</param> /// ----------------------------------------------------------------------------- public static void DeleteFile(string stFilePath) { System.IO.FileInfo cFileInfo = new System.IO.FileInfo(stFilePath); // ファイルが存在しているか判断する if (cFileInfo.Exists) { // 読み取り専用属性がある場合は、読み取り専用属性を解除する if ((cFileInfo.Attributes & System.IO.FileAttributes.ReadOnly) == System.IO.FileAttributes.ReadOnly) { cFileInfo.Attributes = System.IO.FileAttributes.Normal; } // ファイルを削除する cFileInfo.Delete(); } }
使用例は以下のようになります。
C# 全般
// 読み取り専用ファイルの場合でも削除する
DeleteFile(@"C:\Hoge\");
関連するリファレンス
準備中です。