代码之家  ›  专栏  ›  技术社区  ›  dhh

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

  •  5
  • dhh  · 技术社区  · 14 年前

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

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

    以下是我迄今为止写的:

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

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

    2 回复  |  直到 14 年前
        1
  •  2
  •   Kamran Khan    14 年前

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

        2
  •  0
  •   nickytonline    14 年前

    为什么不创建一个 Process 然后打电话给 XCOPY 命令?它可以复制权限。