(.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でした。。。