代码成功修改文件Users组权限但安全选项卡未显示变更的原因咨询
代码成功修改文件Users组权限但安全选项卡未显示变更的原因咨询
嘿,我发现你的问题所在啦!你在代码里确实修改了FileSecurity对象的权限设置,控制台输出也显示Users组有了Write权限,但你漏掉了把修改后的权限保存到实际文件这关键一步!
你看,FileSecurity对象只是内存里的一个权限配置容器——当你调用ModifyAccessRule修改它之后,这些变更只存在于内存中,并没有同步到磁盘上的文件。系统的文件安全选项卡读取的是磁盘文件本身的权限设置,自然看不到你在内存里做的修改。
解决方法很简单,只需要在修改完fileSecurity之后,加上一行代码把配置同步到文件:
File.SetAccessControl(file, fileSecurity);
或者用FileInfo的方式也可以:
new FileInfo(file).SetAccessControl(fileSecurity);
加上这行之后,你再去查看文件的安全选项卡,就能看到Users组的Write权限已经正常显示啦!
备注:内容来源于stack exchange,提问作者Legenda




