c# – 清空目录的最佳方法是什么?

有没有办法删除所有文件&指定目录的子目录而不迭代它们?

非优雅的解决方案:

public static void EmptyDirectory(string path)
{
    if (Directory.Exists(path))
    {
        // Delete all files
        foreach (var file in Directory.GetFiles(path))
        {
            File.Delete(file);
        }

        // Delete all folders
        foreach (var directory in Directory.GetDirectories(path))
        {
            Directory.Delete(directory,true);
        }
    }
}

解决方法

System.IO.Directory.Delete怎么样?它有一个递归选项,你甚至使用它.检查你的代码看起来你正试图做一些稍微不同的事情 – 清空目录而不删除它,对吧?好吧,你可以删除它并重新创建它:)

在任何情况下,您(或您使用的某些方法)必须遍历所有文件和子目录.但是,您可以使用GetFileSystemInfos同时迭代文件和目录:

foreach(System.IO.FileSystemInfo fsi in 
    new System.IO.DirectoryInfo(path).GetFileSystemInfos())
{
    if (fsi is System.IO.DirectoryInfo)
        ((System.IO.DirectoryInfo)fsi).Delete(true);
    else
        fsi.Delete();
}

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...