Setting file and folder permissions in VB.Net...
Since writing the origional guide to the method below we have discovered a better way to copy the NTFS permissions of a folder to another folder, which can actually transfer the effective permissions instead of just the explicit ones. This is obviously very handy in a range of situations and is done like so..
Private Sub match_folder_security(ByVal from_folder As String, ByVal to_folder As String, ByVal inherit As Boolean)
Dim from_folder_info As New DirectoryInfo(from_folder)
Dim to_folder_info As New DirectoryInfo(to_folder)
Dim fromfoldersecurity As DirectorySecurity = from_folder_info.GetAccessControl(AccessControlSections.Access)
Dim from_sddlform As String = fromfoldersecurity.GetSecurityDescriptorSddlForm(AccessControlSections.Access)
Dim tofoldersecurity As New DirectorySecurity
tofoldersecurity.SetSecurityDescriptorSddlForm(from_sddlform, AccessControlSections.Access)
If inherit.Equals(True) Then
tofoldersecurity.SetAccessRuleProtection(False, False)
Else If inherit.Equals(False) Then
tofoldersecurity.SetAccessRuleProtection(True, True)
End If
to_folder_info.SetAccessControl(tofoldersecurity)
End Sub