AddAccessRule在大文件夹上极其缓慢

时间:2018-06-08 14:12:06

标签: c# file-permissions

我有一些代码,我必须重构,重构后速度极慢。

这就是我现在使用的:

DirectoryInfo dInfo = new DirectoryInfo(vPath);
DirectorySecurity dSecurity = dInfo.GetAccessControl();
dSecurity.AddAccessRule(new FileSystemAccessRule(GroupName,
                             FileSystemRights.Read | FileSystemRights.Traverse, 
                             InheritanceFlags.None, 
                             PropagationFlags.None, 
                             AccessControlType.Allow));

dInfo.SetAccessControl(dSecurity);

这是之前的代码,运行速度更快:

// Add a new access control entry (ACE) object (objAce) so that
// the NDSuser has Full Control permissions on NTFS file system files.

objAce1 = new AccessControlEntryClass();
objAce1.Trustee = (objSIdHex).ToString();

objAce1.AccessMask = Maske; //(int)1180159;

objAce1.AceType = (int)ActiveDs.ADS_ACETYPE_ENUM.ADS_ACETYPE_ACCESS_ALLOWED;
objAce1.AceFlags = (int)ActiveDs.ADS_ACEFLAG_ENUM.ADS_ACEFLAG_INHERIT_ACE
                 | (int)ActiveDs.ADS_ACEFLAG_ENUM.ADS_ACEFLAG_INHERIT_ONLY_ACE 
                 | 1;

objDAcl.AddAce(objAce1);

我不知道为什么这需要这么长时间,特别是因为我试图只设置这个文件夹的权限(没有继承/没有传播) - 但是在大文件夹结构上它需要几分钟!

0 个答案:

没有答案