コード例 #1
0
        // From http://stackoverflow.com/questions/3118439/how-to-copy-ntfs-permissions
        //private static void CopySecurityInformation(String source, String dest)
        //{
        //    FileSecurity fileSecurity = File.GetAccessControl(source, AccessControlSections.All);
        //    fileSecurity.SetAccessRuleProtection(true, true);  // from http://www.codekeep.net/snippets/1dc00f8c-b338-4760-aecb-024fe5009ed6.aspx
        //    File.SetAccessControl(dest, fileSecurity);
        //    FileAttributes fileAttributes = File.GetAttributes(source);
        //    File.SetAttributes(dest, fileAttributes);
        //}
        // From http://msdn.microsoft.com/en-us/library/system.io.file.setaccesscontrol.aspx
        private static void CopySecurityInformation(String source, String dest)
        {
            FileSecurity sourceFileSecurity = File.GetAccessControl(source, AccessControlSections.All);
            FileSecurity destFileSecurity = new FileSecurity();
            string sourceDescriptor = sourceFileSecurity.GetSecurityDescriptorSddlForm(AccessControlSections.All);
            destFileSecurity.SetSecurityDescriptorSddlForm(sourceDescriptor);
            File.SetAccessControl(dest, sourceFileSecurity);

            FileAttributes fileAttributes = File.GetAttributes(source);
            File.SetAttributes(dest, fileAttributes);
        }