0

我正在创建这样的文件:

System.IO.File.Create("file.dat").Close();

我想设置文件的权限以禁止用户删除它。我尝试了以下方法,但没有奏效:

System.Security.AccessControl.FileSecurity fSecurity = File.GetAccessControl(dirPath + "\\" + fileName);

fSecurity.AddAccessRule(new System.Security.AccessControl.FileSystemAccessRule("Administrators",
    System.Security.AccessControl.FileSystemRights.Delete, System.Security.AccessControl.AccessControlType.Allow));

File.SetAccessControl(dirPath + "\\" + fileName, fSecurity);
4

1 回答 1

1

可以使用 System.IO.File.SetAccessControl 设置文件权限

请参阅 MSDN 上的文档和示例:http: //msdn.microsoft.com/en-us/library/system.io.file.setaccesscontrol.aspx

要拒绝除管理员以外的所有用户的删除权限,您可以使用此代码

    FileSecurity fSecurity = File.GetAccessControl(fileName);

    AuthorizationRuleCollection rules = fSecurity.GetAccessRules(true, true, typeof(System.Security.Principal.SecurityIdentifier));
    foreach (AuthorizationRule rule in rules)
    {
        System.Security.Principal.NTAccount account = 
            (System.Security.Principal.NTAccount)rule.IdentityReference.Translate(typeof(System.Security.Principal.NTAccount));
        if (account.Value != "BUILTIN\\Administrators")
        {
            fSecurity.AddAccessRule(new FileSystemAccessRule(account.Value, FileSystemRights.Delete, AccessControlType.Deny));
        }
    }

    File.SetAccessControl(fileName, fSecurity);
于 2013-06-27T15:50:40.420 回答