Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.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# 使用getAccessControl时出现UnauthorizedAccessException_C#_Ownership_Unauthorizedaccessexcepti - Fatal编程技术网

C# 使用getAccessControl时出现UnauthorizedAccessException

C# 使用getAccessControl时出现UnauthorizedAccessException,c#,ownership,unauthorizedaccessexcepti,C#,Ownership,Unauthorizedaccessexcepti,我正在尝试将文件从外部硬盘复制到桌面上的文件夹中,为了做到这一点,我必须拥有外部硬盘中的文件夹和文件的所有权,我在前面的问题中阅读了关于它的内容,我的代码如下所示: using (new ProcessPrivileges.PrivilegeEnabler(Process.GetCurrentProcess(), Privilege.TakeOwnership)) { directoryInfo = new DirectoryInfo(path); directorySecuri

我正在尝试将文件从外部硬盘复制到桌面上的文件夹中,为了做到这一点,我必须拥有外部硬盘中的文件夹和文件的所有权,我在前面的问题中阅读了关于它的内容,我的代码如下所示:

using (new ProcessPrivileges.PrivilegeEnabler(Process.GetCurrentProcess(), Privilege.TakeOwnership))
{
    directoryInfo = new DirectoryInfo(path);
    directorySecurity = directoryInfo.GetAccessControl();

    directorySecurity.SetOwner(WindowsIdentity.GetCurrent().User);
    Directory.SetAccessControl(path, directorySecurity);    
}
当我运行此代码时,我在以下行中得到一个异常:

directorySecurity = directoryInfo.GetAccessControl();  
例外情况是:

在尝试执行时捕获到unauthorizedAccessException 未经授权的操作


为什么会这样?如何复制这些文件夹和文件?

您的用户帐户是否有权更改目录和文件的ACL?如果不是,那当然不行。您可能想尝试使用管理员权限运行程序,看看会发生什么。请记住,当以管理员身份运行时,您的程序可能会使用管理员的桌面文件夹作为目标…我正在尝试将文件从外部硬盘复制到桌面中的文件夹,为此,我必须拥有文件夹和外部硬盘中的文件=>为什么?您需要读取权限,但不需要所有权。此外,如果你有权获得所有权,你有权授予自己阅读烫发,如果你没有阅读烫发,获得所有权似乎有点过头了。