为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

饮歌长啸 2019-07-29 11:27:34
如何删除目录中的所有文件和文件夹?使用C#,如何从目录中删除所有文件和文件夹,但仍保留根目录?
查看完整描述

3 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

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


查看完整回答
反对 回复 2019-07-29
?
手掌心

TA贡献1942条经验 获得超3个赞

是的,这是正确的方法。如果你想给自己一个“干净”(或者,我更喜欢称之为“清空”功能),你可以创建一个扩展方法。

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


查看完整回答
反对 回复 2019-07-29
  • 3 回答
  • 0 关注
  • 555 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信