更改文件夹的权限

我想将一些文件夹权限(设置为只读)更改为ReadWriteExecute!

我写了这段代码,但文件夹权限仍然是只读的:

private void ChangePermissions(string folder) { string userName = Environment.UserName; FileSystemAccessRule accessRule = new FileSystemAccessRule(userName, FileSystemRights.FullControl, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow); DirectoryInfo directoryInfo = new DirectoryInfo(folder); DirectorySecurity directorySec = directoryInfo.GetAccessControl(); directorySec.AddAccessRule(accessRule); directoryInfo.SetAccessControl(directorySec); } 

如果我想用Directory.Delete(folder, true)删除此目录,我收到此错误消息:

“拒绝访问路径’条目’。”

当然,权限仍然是只读的!

这有什么不对?

你可以尝试这样的事情:

 var dirInfo = new DirectoryInfo(folder); dirInfo.Attributes &= ~FileAttributes.ReadOnly; 

这使用按位逻辑AND运算符(&=)将现有的Attributes属性附加到FileAttributes.ReadOnly的反转(因为~是按位NOT)。