だらだらやるよ。 このページをアンテナに追加 RSSフィード

 

2011-07-14

あれ、バグ?なのかしら。(追記)仕様でした。

| あれ、バグ?なのかしら。(追記)仕様でした。を含むブックマーク あれ、バグ?なのかしら。(追記)仕様でした。のブックマークコメント

ちょっと時間なかったのでちゃんと調べれてない。。。

ディレクトリの削除時にどうもおかし挙動が。


.NETバージョンは4.0かな。

フォルダを中身ごとまるごと削除したいと思って、

DirectoryInfo dir = new DirectoryInfo(path);
dir.Delete(true);

ってやったら、

フォルダの中身が空ではありませんって例外が出た。

はて。。。と思ったけど類似の現象は見当たらなかった。

なんとなく

Directory.Delete(path,true);

に書き換えたら無事動きました。。。


追記、どうやらそれで仕様どおりらしいです。同じ動きするものだと思ってました。。。。

DirectoryInfo.Delete(string)

http://msdn.microsoft.com/ja-jp/library/adtekwst.aspx


Directory.Delete(string, bool)

http://msdn.microsoft.com/ja-jp/library/fxeahc5f.aspx


やっぱMSDNは読まないとだめですね。

id:masa-kさんありがとうございました!!

masa-kmasa-k 2011/07/14 16:37 ん? どちらも仕様通りの動きですよー。

DirectoryInfo.Delete(string)
http://msdn.microsoft.com/ja-jp/library/adtekwst.aspx

>> DirectoryInfo が空の場合に、そのインスタンスを削除します。

Directory.Delete(string, bool)
http://msdn.microsoft.com/ja-jp/library/fxeahc5f.aspx

>> 指定したディレクトリと、特に指定されている場合はディレクトリ内の任意のサブディレクトリおよびファイルを削除します。

nagakura_eilnagakura_eil 2011/07/16 17:41 masa-kさん
おおお、これ仕様どおりだったんですね。。。
ちゃんと読もうMSDN...コメントありがとうございました!

karaikarai 2015/02/04 18:44 えーと、stringを引数に取るDeleteなんてどこにもないんですが、何の話をしてますでしょう? それとも仕様変わったのかな。
引数なしのDirectoryInfo.Delete()については、「空の場合に」だろうとおもうんですけど、booleanを引数に取るものについては、Directory.Delete(string, bool)と同じ動きをするようにしか読めないのですけどね……。

で、個人的には、キャッチしてもう一回Delete(true)かけるようにしてたりしたら、そのうち例外も出なくなったという、結局謎状況で。
何かやっぱり問題あるんじゃないですかねぇ。

トラックバック - http://d.hatena.ne.jp/nagakura_eil/20110714/p1
リンク元
このブログは清野竜矢の個人的なものです。ここで述べられていることは私の個人的な意見に基づくものであり、 私の雇用者には一切の関係はありません。
Connection: close