如何禁用长路径文件夹上的ACL继承?

时间:2018-07-31 12:15:03

标签: c# .net pinvoke

我正在尝试将ACL(权限)从源文件夹复制到目标位置。文件夹路径是长路径,因此不能使用.net内置函数。

我正在使用GetNamedSecurityInfo读取源文件夹的ACl,并使用SetNamedSecurityInfo编写ACL。

我想在目标上关闭ACL继承以匹配源,但是SetNamedSecurityInfo始终启用继承。

我们可以使用以下.Net内置方法禁用常规路径(非长路径)的继承。请提出一些win32 COM API(pinvoke)的方法来实现长路径。

DirectorySecurity dSecurityOut = System.IO.Directory.GetAccessControl(destinationNormalPath);
dSecurityOut.SetAccessRuleProtection(true,false);
System.IO.Directory.SetAccessControl(destinationNormalPath, dSecurityOut);

0 个答案:

没有答案