ディレクトリ内のすべてのファイルとフォルダを削除するにはどうすればいいですか? 質問する

ディレクトリ内のすべてのファイルとフォルダを削除するにはどうすればいいですか? 質問する

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

ベストアンサー1

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()

おすすめ記事