C#/.NET中删除指定文件夹下所有文件和文件夹的几种方法汇总

C#开发 2015-09-29 1425浏览 收藏本文

csharp 我们知道,在C#/.NET中的System.IO命名空间下,都是关于文件和文件夹信息操作的类。如果在开发中有删除指定文件夹下所有文件和文件夹这样的需要,应该如何使用C#/.NET来实现这个需求呢? 方法一:直接删除整个指定文件夹 使用使用Directory.Delete("文件夹路径",true)方法,然后重建这个文件夹【暴力,直接】,具体操作如下:

Directory.Delete(fileDir,true);
Directory.CreateDirectory(fileDir);
虽然以上这个方法简单,但不推荐使用。 方法二:分步删除指定文件夹中的文件和文件夹。 因为从指定文件夹中获取文件列表和获取文件夹列表使用的是不同的方法,所以,我们即要删除文件,也要删除文件的话就必须分两步,第一步删除所有文件,第二步删除所有文件夹,我们来整理一下实现这个需求的大概步骤: 1.使用Directory.GetFiles("文件夹路径")获取指定文件夹中所有的文件; 2.在1的基础上遍历所有文件,使用File.Delete("文件完整路径")来删除每个文件; 3.DirectoryInfo实例对象的GetDirectories文件获取所有的文件夹; 4.在3的基础上遍历所有文件夹,使用DirectoryInfo实例的Delete方法删除对应的文件夹。 第一种(不使用静态扩展方法),代码如下:
string directoryPath = "C:\指定的文件夹路径";
Directory.GetFiles(directoryPath).ToList().ForEach(File.Delete);
Directory.GetDirectories(directoryPath).ToList().ForEach(Directory.Delete);

第二种(使用静态扩展方法),代码如下:
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);
}
使用C#/.NET的静态方法的好处是,调用这个静态方法比普通的方法更方便,如:
System.IO.DirectoryInfo directory = new System.IO.DirectoryInfo(@"C:\指定的文件夹路径");
directory.Empty();
好了,关于C#/.NET中删除指定文件夹下所有文件和文件夹的几种方法就总结到这里,如果你有更好的解决方案,欢迎交流。 如果你觉得本文对你有帮助,请你点击一下“喜欢”,这样可以更好地帮助其他人噢!!!

转载请注明:图享网 » C#/.NET中删除指定文件夹下所有文件和文件夹的几种方法汇总

验证码