■■■

2016年4月3日日曜日

フォルダを強制的に削除する方法

フォルダを強制的に削除する方法
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);
}

■■■