【发布时间】:2020-01-27 17:14:18
【问题描述】:
我需要将安全权限从一个文件夹复制到一堆文件夹。
我需要更改大量子文件夹的权限。我想从具有正确安全设置的现有文件夹中复制权限。 代码运行没有错误,但没有任何变化。如果我创建现有文件夹的副本,则权限正常。
DirectorySecurity permissions = Directory.GetAccessControl(srcFolder);
foreach (var subfolder in Directory.GetDirectories(containingFolder, "*", SearchOption.TopDirectoryOnly))
{
Directory.SetAccessControl(subfolder, permissions); // no change
Directory.CreateDirectory(subfolder + "_copy", permissions); // new folder has permissions as expected
}
我希望containingFolder 中的所有subfolder 都具有与srcFolder 相同的权限。
【问题讨论】:
-
"SetAccessControl方法只持久化对象创建后被修改过的DirectorySecurity对象。如果一个DirectorySecurity对象没有被修改过,就不会持久化到文件中。因此,它不是可以从一个文件中检索 DirectorySecurity 对象并将同一对象重新应用到另一个文件" - 来自remarks。进一步是做什么。
标签: c# windows directory user-permissions