C#でディレクトリのアクセス権を削除する方法を紹介します。
今回は、 こちらの記事に記載されている方法でディレクトリに追加したアクセス権を削除します。
対象となるディレクトリのみにアクセス権を追加した場合はこの記事で紹介する方法でアクセス権を削除できますが、アクセス権が親フォルダから継承されている場合はこの方法では削除できません。継承されているディレクトリのアクセス権を削除する方法は こちらの記事になります。
今回は、 こちらの記事に記載されている方法でディレクトリに追加したアクセス権を削除します。
対象となるディレクトリのみにアクセス権を追加した場合はこの記事で紹介する方法でアクセス権を削除できますが、アクセス権が親フォルダから継承されている場合はこの方法では削除できません。継承されているディレクトリのアクセス権を削除する方法は こちらの記事になります。
コード例
private void button_Remove_AccessRights(object sender, EventArgs e)
{
string filePath = @"c:\\develop\dev";
FileSecurity security = File.GetAccessControl(filePath);
security.PurgeAccessRules(new NTAccount("everyone"));
File.SetAccessControl(filePath, security);
}
説明
FileSecurity security = File.GetAccessControl(filePath);
にて、指定したディレクトリのセキュリティ情報(ファイルセキュリティオブジェクト)を取得します。
security.PurgeAccessRules(new NTAccount("everyone"));
にて、セキュリティ情報から"everyone"のアクセス権を削除します。
File.SetAccessControl(filePath, security);
にて、指定したディレクトリに"everyone"のアクセス権を削除したセキュリティ情報(ファイルセキュリティオブジェクト)を適用します。