プログラムの事とか

お約束ですが「掲載内容は私個人の見解です」

.NET でディレクトリの削除が失敗したりしなかったりする

小ネタ

Windows 10 Pro 1803、.NET Framework 4.7.2 でうごかしてます

準備

Visual Studioで新規のコンソールアプリを作って

class Program
{
    static void Main(string[] args)
    {
        Directory.Delete(@"F:\Test", true);
    }
}

完成

FドライブはSEAGATE ST2000DM006がそのまま割り当てられていて

Testフォルダ内にはいろんなフォルダやファイルが合計100MBくらいはいっています

実行!

f:id:puni-o:20180608170814j:plain

空じゃないと言われたので見てみました

f:id:puni-o:20180608170852j:plain

このフォルダーは空です。

これ毎回失敗するわけじゃないんですが失敗しないと思い込んでいると私のように痛い目をみます

ということでググりました

でてきました

stackoverflow.com

安定のstackoverflow先生、さすがです

結構前の情報なのでいろんな環境で起きるんですかね?どうなんですかね?

そこにおすすめの解決法もありましたよ

static void Main(string[] args)
{
    try
    {
        Directory.Delete(@"F:\Test", true);
    }
    catch (IOException)
    {
        Thread.Sleep(0);
        Directory.Delete(@"F:\Test", true);
    }
}