Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更改文件夹的权限_C#_File Permissions_Permission Denied - Fatal编程技术网

C# 更改文件夹的权限

C# 更改文件夹的权限,c#,file-permissions,permission-denied,C#,File Permissions,Permission Denied,我想将某些文件夹权限(设置为只读)更改为ReadWriteExecute 我编写了此代码,但文件夹权限仍然是只读的: private void ChangePermissions(string folder) { string userName = Environment.UserName; FileSystemAccessRule accessRule = new FileSystemAccessRule(userName, FileSystemRights.FullCont

我想将某些文件夹权限(设置为只读)更改为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);
}
如果我想用
目录删除此目录。删除(文件夹,true)
我会收到以下错误消息:

“对路径“条目”的访问被拒绝。”

当然,权限仍然是只读的


这里出了什么问题?

您可以尝试以下方法:

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

这使用按位逻辑AND运算符将
FileAttributes.ReadOnly
(因为
~
不是按位的)的倒数附加到现有属性中。

相同的错误。“条目”路径是文件夹中的文件,也许我必须递归地更改权限?!(但我不明白为什么只读标志仍然设置为根文件夹?)。所有人的代码都很好@YoushaAleayoub权限是使用FileAttributes处理的