如何在创建新文件夹时复制安全信息?

时间:2010-04-27 15:06:20

标签: c# .net security filesystems

在我的应用程序中,我正在创建用于从硬盘中存档旧内容的文件夹。

创建新文件夹时,我必须将所有NTFS权限(组/用户)从源文件夹复制到新创建的目标文件夹。

这是我到目前为止所写的内容:

FileSecurity fileSecurity =
    File.GetAccessControl(filenameSource, AccessControlSections.All);
FileAttributes fileAttributes = File.GetAttributes(filenameSource);
File.SetAccessControl(filenameDest, fileSecurity);
File.SetAttributes(filenameDest, fileAttributes);

这真的是我应该做的还是我错过了一些重要的事情?

2 个答案:

答案 0 :(得分:2)

如果这是一个文件夹,那么您可能需要检查Directory.SetAccessControl()方法。如果要在调用Directory.SetAccessControl()之前阻止文件继承ACL规则,您可能需要调用DirectorySecurity.SetAccessRuleProtection(isProtected/*true*/,preserveInheritance /*false*/);

答案 1 :(得分:0)

为什么不创建Process并调用XCOPY命令?它可以复制权限。