C#文件夹权限

我需要拥有该文件夹及其子文件夹的所有权才能删除它。手动处理对我来说很好:

  1. 打开文件夹属性。

  2. 安全选项卡->高级->所有者更改->选中“替换子容器和对象上的所有者”

  3. 出现消息框:您无权读取目录C:\ a4f31eae62bde1cb4d49834897 \ Sandbox的内容。您是否要使用授予您完全控制权限的目录替换目录权限?如果按是,将替换所有权限。

  4. 按是

  5. 然后,我可以删除该文件夹。

但是我有大约数百个这些文件夹(reason),所以我想以编程方式删除它们。

我的代码获得了文件夹的所有权,而不是子文件夹的所有权。

var identity = WindowsIdentity.GetCurrent().User;

var dirInfo = new DirectoryInfo(dirPath);

var dirSecurity = dirInfo.GetAccessControl();


dirSecurity.SetOwner(identity);


var fullControlRule = new FileSystemAccessRule(identity, 

    FileSystemRights.FullControl,

    InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, 

    PropagationFlags.None, 

    AccessControlType.Allow);


dirSecurity.AddAccessRule(fullControlRule);

dirInfo.SetAccessControl(dirSecurity);

之后尝试删除文件夹时,出现System.UnauthorizedAccessException:拒绝访问路径'C:\ a4f31eae62bde1cb4d49834897 \ Sandbox'。


holdtom
浏览 200回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP