这种一般是由于文件夹中有只读文件引起的,解决方法可已通过对文件的删除来解决
/// <summary>
/// 递归删除文件夹,避免只读文件导致删除不了的情况
/// </summary>
/// <param name="dir">文件夹全路径</param>
private static void DeleteDir(string dir)
{
if (Directory.Exists(dir)) //判断是否存在
{
foreach (string childName in Directory.GetFileSystemEntries(dir))//获取子文件和子文件夹
{
if (File.Exists(childName)) //如果是文件
{
FileInfo fi = new FileInfo(childName);
if (fi.IsReadOnly)
{
fi.IsReadOnly = false; //更改文件的只读属性
}
File.Delete(childName); //直接删除其中的文件
}
else//不是文件就是文件夹
DeleteFolder(childName); //递归删除子文件夹
}
Directory.Delete(dir, true); //删除空文件夹
}
}