You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

创建目录并设置AccessRules(权限)时权限详情为空问题

问题原因及解决方法

你遇到的问题是因为创建FileSystemAccessRule时缺少了继承和传播规则的参数。默认构造函数只指定了用户、权限类型和允许/拒绝控制,但没有定义权限的作用范围(比如是否应用到目录本身、是否传递给子目录和文件),导致系统无法正确识别权限的有效范围,最终表现为权限列表里有用户条目,但权限详情为空。

修复后的代码

修改FileSystemAccessRule的实例化逻辑,补充继承和传播参数即可解决:

public static Result CreateDirectory(string path)
{
    try
    {
        if (!System.IO.Directory.Exists(path))
        {
            DirectoryInfo directoryInfo = System.IO.Directory.CreateDirectory(path);
            directoryInfo.Attributes = FileAttributes.Normal;
            DirectorySecurity sec = directoryInfo.GetAccessControl();
            // 补充继承与传播规则参数,明确权限作用范围
            var accessRule = new FileSystemAccessRule(
                Environment.UserDomainName + "\\" + Environment.UserName,
                FileSystemRights.FullControl,
                InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
                PropagationFlags.None,
                AccessControlType.Allow
            );
            sec.AddAccessRule(accessRule);
            directoryInfo.SetAccessControl(sec);
        }
        return new Result();
    }
    catch (Exception ex)
    {
        return new Result(exception: ex, sendMail: true);
    }
}

关键参数说明

  • InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit:指定权限会同时应用到当前目录、目录下的子目录(容器)和文件(对象)
  • PropagationFlags.None:表示权限会正常向下传播,不限制传播范围

添加这两个参数后,系统就能正确识别权限的作用范围,权限详情里就会显示完整的FullControl权限条目。

内容的提问来源于stack exchange,提问作者dns_nx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 00:39:57