C# でファイルとディレクトリを再帰的に削除する 質問する

C# でファイルとディレクトリを再帰的に削除する 質問する

C# で特定のディレクトリを再帰的に削除するにはどうすればよいでしょうか? ファイルを含むディレクトリ。

すべきかSystem.IO.ディレクトリの削除2 番目のパラメータを使用するとtrueうまくいきますか?


編集:

ということで、私は実際に自分の質問に答えましたが、ここでの回答はもう少し明確でした。そもそも私がこれを尋ねた理由は、まさにその呼び出しDelete(2番目のパラメータを に設定true)を持つコードが、本来行うべきことを実行していなかったからです。結局、その原因は、ディレクトリ階層のどこかに属性が設定されたファイルがありRO研磨のバージョンでは、Windows XPそのため非常に奇​​妙なメッセージが表示されていました。

ベストアンサー1

サブディレクトリにもファイルが含まれている場合に私にとって機能する唯一の解決策は、再帰関数を使用することです。

    public static void RecursiveDelete(DirectoryInfo baseDir)
    {
        if (!baseDir.Exists)
            return;

        foreach (var dir in baseDir.EnumerateDirectories())
        {
            RecursiveDelete(dir);
        }
        baseDir.Delete(true);
    }

Directory.Delete(dir, true) は、現在のディレクトリのファイルと、サブディレクトリが空の場合はそのサブディレクトリのみを削除するようです。

誰かの役に立つことを願います。

ちなみに例:RecursiveDelete( new DirectoryInfo(@"C:\my_dir") );

おすすめ記事