ファイル操作のテストを行うプログラムを書いています。作業用のディレクトリが既に存在する場合は削除してから作り直そうと思い、次のように書きました。

if (Directory.Exists("foo"))
    Directory.Delete("foo", true);
Directory.CreateDirectory("foo");

ところがディレクトリ foo が既に存在している状態でこれを実行すると、ディレクトリが削除されるだけで再作成が行われません。この時も例外は出ていないようです。

同じようなコードがファイルに対しては問題なく動くのですが・・・。

if(File.Exists("bar"))
    File.Delete("bar");
File.WriteAllText("bar", "");

ディレクトリの再作成を行うにはどうすればよいでしょうか?
上記のような挙動になる理由も教えていただけると助かります。