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