VB.NET
Public Shared Sub DeleteDirectory(ByVal dir As String)
Dim di As New DirectoryInfo(dir)
RemoveReadonlyAttribute(di)
di.Delete(True)
End Sub
Public Shared Sub RemoveReadonlyAttribute( _
ByVal dirInfo As DirectoryInfo)
If (dirInfo.Attributes And FileAttributes.ReadOnly) =
FileAttributes.ReadOnly Then
dirInfo.Attributes = FileAttributes.Normal
End If
Dim fi As FileInfo
For Each fi In dirInfo.GetFiles()
If (fi.Attributes And FileAttributes.ReadOnly) =
FileAttributes.ReadOnly Then
fi.Attributes = FileAttributes.Normal
End If
Next fi
Dim di As DirectoryInfo
For Each di In dirInfo.GetDirectories()
RemoveReadonlyAttribute(di)
Next di
End Sub
C#public static void DeleteDirectory(string dir)
{
DirectoryInfo di = new DirectoryInfo(dir);
RemoveReadonlyAttribute(di);
di.Delete(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);
}