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

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

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



饮歌长啸
浏览 556回答 3
3回答

人到中年有点甜

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

手掌心

是的,这是正确的方法。如果你想给自己一个“干净”(或者,我更喜欢称之为“清空”功能),你可以创建一个扩展方法。public static void Empty(this System.IO.DirectoryInfo directory){     foreach(System.IO.FileInfo file in directory.GetFiles()) file.Delete();     foreach(System.IO.DirectoryInfo subDirectory in directory.GetDirectories()) subDirectory.Delete(true);}这将允许你做类似的事情..System.IO.DirectoryInfo directory = new System.IO.DirectoryInfo(@"C:\...");directory.Empty();
打开App,查看更多内容
随时随地看视频慕课网APP