c# - 如何禁用长路径文件夹上的 ACL 继承?
问题描述
我正在尝试将 ACL(权限)从源文件夹复制到目标。文件夹路径是长路径,所以不能使用 .net 内置函数。
我正在使用GetNamedSecurityInfo
读取源文件夹SetNamedSecurityInfo
的 ACL 并编写 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);
解决方案
推荐阅读
- python - 从共享文件夹中读取 .ipynb 文件
- javascript - 迭代并更改 JSON 中所有出现的给定字段
- javascript - 可以通过AJAX检索并用JS处理的JSON对象的最大大小是多少
- php - 我可以这样做吗?MYSQL,GROUP_BY WHERE
- android - Android / TFlite 调用导致 NPE
- excel - VBA 不工作(从一个文件复制数据并粘贴到最后一行数据下方的不同工作簿)
- android - 使用生产应用程序在 Firebase 中接收 android 模拟器崩溃
- javascript - 自动 Y 轴刻度:最大值始终为 ChartJS 中最大值的 120%
- excel - VBA:如果标题匹配,则插入 2 列
- spring - Prometheus + Micrometer:如何记录时间间隔和成功/失败率