【问题标题】:How do I copy security information when creating a new folder?创建新文件夹时如何复制安全信息?
【发布时间】:2010-04-27 15:06:19
【问题描述】:

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

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

这是我目前所写的:

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

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

【问题讨论】:

    标签: c# .net security filesystems


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 因为我在自己用 C#.Net 创建的应用程序中需要它;-) 感谢您提供帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-19
      • 1970-01-01
      • 2016-02-22
      • 1970-01-01
      相关资源
      最近更新 更多