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