CSharp - 使用 C# 错误on文件/文件夹can无法设置flags设置/更新继承标志权限 参数名:inheritanceFlags"

  显示原文与译文双语对照的内容

创建一个带有包含权限的文本文件的程序,并将这些权限应用于文件/文件夹。
试图将继承标志改为ContainerInherit或者ObjectInherit时,总是出现错误"无法设置标志"。 参数名称:InheritanceFlags"。
如果将继承标志设置为无,则不会出现这里错误。 这是我的代码:


if (flag.Equals("None"))


{


 inheritFlag = InheritanceFlags.None;


}


else if (flag.Equals("ContainerInherit"))


{


 inheritFlag = InheritanceFlags.ContainerInherit;


}


else if (flag.Equals("ObjectInherit"))


{


 inheritFlag = InheritanceFlags.ObjectInherit;


} 



FileSystemAccessRule fsarule = new FileSystemAccessRule(user, fileSysRight, inheritFlag, propFlag, controlType);


fileSec.AddAccessRule(fsarule);


File.SetAccessControl(currentFilePath, fileSec);



如何设置继承标志而不获取这里错误?
谢谢

时间: 原作者:

使用DirectorySecurity类而不是文件类,因为文件上的inheritence不存在。 只接受目录和子目录和文件。 我将你的代码像这样:


DirectoryInfo dirInfo = new DirectoryInfo(folderPath);


DirectorySecurity dirSecurity = dirInfo.GetAccessControl();


dirSecurity.AddAccessRule(new FileSystemAccessRule(user, fileSysRight, inheritFlag, propFlag, controlType);


dirSecurity.SetAccessControl(currentFilePath, fileSec);



...