一尘不染

如何删除目录中的所有文件和文件夹?

c#

使用C#,如何从目录中删除所有文件和文件夹,但仍保留根目录?


阅读 404

收藏
2020-05-19

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

2020-05-19