如何完全删除一个非空文件夹

System.IO.Directory.Delete(@"C:\abcdefg",true )
无论是否为空都回删除,但是如果里面有只读文件的话,会有错误提示

如果只读文件也要删除的话,要首先改变文件的属性,然后使用上述命令删除。

下面的代码就是改变文件属性的。
public static void RemoveReadonlyAttribute(DirectoryInfo dirInfo)
{
//文件夹属性更改
if ((dirInfo.Attributes & FileAttributes.ReadOnly) ==
FileAttributes.ReadOnly)
dirInfo.Attributes = FileAttributes.Normal;
//文件夹内全部的文件的属性更改
foreach (FileInfo fi in dirInfo.GetFiles())
if ((fi.Attributes & FileAttributes.ReadOnly) ==
FileAttributes.ReadOnly)
fi.Attributes = FileAttributes.Normal;
//再归更改文件属性
foreach (DirectoryInfo di in dirInfo.GetDirectories())
RemoveReadonlyAttribute(di);
}

===========================================================

附:递归遍历文件的方法

Code
原文地址:https://www.cnblogs.com/zhangsir/p/1407979.html