C#递归删除文件夹目录及文件的方法
我们在删除之前要先指定一下要删除的目录
比如我定义一个目录代码如下
[code=csharp]string dir = "c:\\sufei\\toll";[/code]
接下来要判断一下这个目录是否存在
这里我们要使用到Directory类,这个类主要是用来操作目录的
[C#] 纯文本查看 复制代码 if (Directory.Exists(dir)) //
{
//存在这个目录
}
删除目录的方法如下
[C#] 纯文本查看 复制代码 Directory.Delete(dir, true); //删除已空文件夹
删除文件的方法如下
[C#] 纯文本查看 复制代码 File.Delete(dir); //直接删除其中的文件
使用一个递归的方法进行删除如下所示
[C#] 纯文本查看 复制代码 if (Directory.Exists(dir)) //如果存在这个文件夹删除之
{
foreach (string d in Directory.GetFileSystemEntries(dir))
{
if (File.Exists(d))
File.Delete(d); //直接删除其中的文件
else
DeleteFolder(d); //递归删除子文件夹
}
Directory.Delete(dir, true); //删除已空文件夹
}
我们再优化一下这个代码,提成一个方法如下
[C#] 纯文本查看 复制代码 /****************************************
* 函数名称:DeleteFolder
* 功能说明:递归删除文件夹目录及文件
* 参 数:dir:文件夹路径
* 调用示列:
* string dir = Server.MapPath("test/");
* DotNet.Utilities.FileOperate.DeleteFolder(dir);
*****************************************/
/// <summary>
/// 递归删除文件夹目录及文件
/// </summary>
/// <param name="dir"></param>
/// <returns></returns>
public static void DeleteFolder(string dir)
{
if (Directory.Exists(dir)) //如果存在这个文件夹删除之
{
foreach (string d in Directory.GetFileSystemEntries(dir))
{
if (File.Exists(d))
File.Delete(d); //直接删除其中的文件
else
DeleteFolder(d); //递归删除子文件夹
}
Directory.Delete(dir, true); //删除已空文件夹
}
}
大家试试吧,我测试过可以正常删除
|