人気ブログランキング | 話題のタグを見る
(.Net)フォルダ削除のDirectory.Delete(path, true)にやられた

.Netの System.IO.Directory.Delete(path, true) を使ってサブフォルダ・ファイルごと任意のディレクトリを削除しようとしたのですが、"アクセスが拒否されました" とIOException例外になります。


??ってなってたら、サブフォルダの一つが読み取り専用属性がついていました。
Directory.Deleteで削除しようとする場合、読み取り専用属性がついてると削除させてくれないようです。

対処法としては、一旦サブフォルダの読み取り専用属性を全てのけてから、Directory.Deleteメソッドを実行するしかなさそうですorz...
(VB.NET用のMy.Computer.FileSystem.DeleteDirectoryメソッドを使うと一気に消せるようですが。。)

読み取り専用ファイルがあるときでもフォルダを削除する: DOBON.NET Tips: C#, VB.NETに、一旦読み取り専用属性のけてから削除するサンプルコードがあるので、これを使わせてもらいました。

今まで.Netそこそこは触ってきたはずなのに、未だにこんな仕様で驚いている3流PGでした。。。
by jehoshaphat | 2014-02-15 01:06 | .Net開発


<< 移転。。。。 (バッチ)メッセージボックスを... >>