1. ホーム
  2. c#

[解決済み] ディレクトリ内のすべてのファイルやフォルダを削除する方法は?

2022-03-23 22:25:45

質問

C#を使用して、ディレクトリからすべてのファイルとフォルダを削除し、ルートディレクトリを維持するにはどうすればよいですか?

どのように解決するのですか?

System.IO.DirectoryInfo di = new DirectoryInfo("YourPath");

foreach (FileInfo file in di.GetFiles())
{
    file.Delete(); 
}
foreach (DirectoryInfo dir in di.GetDirectories())
{
    dir.Delete(true); 
}


ディレクトリに多くのファイルが存在する可能性がある場合。 EnumerateFiles() よりも効率的です。 GetFiles() というのも EnumerateFiles() とは対照的に、コレクション全体が返される前に列挙を開始することができます。 GetFiles() では、列挙を開始する前にコレクション全体をメモリにロードする必要があります。以下の引用を参照。 ここで :

そのため、多くのファイルやディレクトリを扱う場合は、EnumerateFiles()を使用した方が効率的な場合があります。

についても同様です。 EnumerateDirectories()GetDirectories() . というわけで、コードはこうなります。

foreach (FileInfo file in di.EnumerateFiles())
{
    file.Delete(); 
}
foreach (DirectoryInfo dir in di.EnumerateDirectories())
{
    dir.Delete(true); 
}

この質問の趣旨からすれば、本当に GetFiles()GetDirectories() .