/// <summary>  
/// 用递归方法删除文件夹目录及文件
/// </summary>
/// <param name="dir">带文件夹名的路径</param>
public void DeleteFolder(string dir)
{
if (Directory.Exists(dir)) //如果存在这个文件夹删除之
{
foreach (string d in Directory.GetFileSystemEntries(dir))
{
if (File.Exists(d))
{
FileInfo fi = new FileInfo(d);
if (fi.Attributes.ToString().IndexOf("ReadOnly") != -1)
fi.Attributes = FileAttributes.Normal;

File.Delete(d); //直接删除其中的文件
}
else
DeleteFolder(d); //递归删除子文件夹
}
Directory.Delete(dir, true); //删除已空文件夹
}
}


特别强调:Directory.Delete 方法只能删除 空文件夹,否则 这个方法会报错。因为这个清空某个文件夹的问题,纠结了俺 很多时间。

或者 可以使用 Directory.Delete( your folder, true )


参考:

​http://www.soaspx.com/dotnet/asp.net/tech/tech_20090924_431.html​