【发布时间】:2012-01-10 02:29:56
【问题描述】:
我有一个经常被删除和重新创建的文件(我无法控制这种行为)。但是,当重新创建文件时,它不会保留删除前的权限。所以我写了这段代码来尝试解决这个问题:
var access = File.GetAccessControl(filepath, AccessControlSections.Access);
deleteAndRecreate(filepath);
File.SetAccessControl(filepath, access);
但这不起作用。如果我明确授予“TestUser”对该文件的读取权限,那么在我运行此代码后,TestUser 将不再具有读取权限。我做错了什么?
【问题讨论】:
-
除了删除文件之外,你能做点别的吗...比如清空它?什么是文件不存在而空文件无法完成?
-
您是否尝试在具有预设权限的目录下创建文件?
-
@BlueMonkMN 我完全会这样做,但正如我所说,我无法控制这种行为。这是第 3 方库问题。
-
不幸的是,我的理解不足以回答这个问题,但我想您不能将 FileSecurity 对象的相同实例分配给您从中获取它的文件以外的文件。也许您可以通过阅读msdn.microsoft.com/en-us/library/ms229742.aspx 上的 ACL 技术概述来了解这一点
-
如果可以的话,你最好设置父文件夹的权限(一次),这样无论何时创建文件,它都会默认从其父文件夹继承正确的权限。跨度>
标签: c# .net permissions file-permissions access-control