Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.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# 尝试删除具有受限权限的UNC路径上的文件夹时未引发异常_C#_Windows_Permissions - Fatal编程技术网

C# 尝试删除具有受限权限的UNC路径上的文件夹时未引发异常

C# 尝试删除具有受限权限的UNC路径上的文件夹时未引发异常,c#,windows,permissions,C#,Windows,Permissions,在C#中,我进行了两项测试: 我在本地驱动器上创建了一个没有任何访问权限的目录。试图以编程方式删除目录会引发IOException。我本以为会出现UnauthorizedAccessException,但尽管如此,我还是收到了一个IOException,其中有一条消息指示“拒绝访问” 重复相同的测试,但这次在网络UNC路径上,我在可用UNC共享上创建了一个目录,没有任何访问权限。当我以编程方式删除文件夹时,它会删除,不会出现任何错误或异常。这是同一个测试,同一个用户和给定的用户(我自己)是目录的

在C#中,我进行了两项测试:

  • 我在本地驱动器上创建了一个没有任何访问权限的目录。试图以编程方式删除目录会引发IOException。我本以为会出现UnauthorizedAccessException,但尽管如此,我还是收到了一个IOException,其中有一条消息指示“拒绝访问”

  • 重复相同的测试,但这次在网络UNC路径上,我在可用UNC共享上创建了一个目录,没有任何访问权限。当我以编程方式删除文件夹时,它会删除,不会出现任何错误或异常。这是同一个测试,同一个用户和给定的用户(我自己)是目录的创建者,也是删除所有权限的用户

  • 在Windows资源管理器中手动测试时也会发生同样的情况。在本地驱动器上不允许删除文件夹时,为什么允许在UNC网络共享上删除文件夹?网络是一个工作组(不是域)


    尝试在网络共享上的受限文件夹上添加子目录将引发异常,不会成功。我不明白为什么在删除了所有权限后才允许删除。

    当您创建目录时,新创建的目录从父文件夹继承(在大多数情况下)其访问权限


    所以当你说“没有任何访问权限”时,你是不正确的。您只是从父目录获得访问权限。

    这可能也是您想向超级用户询问的问题,因为这更多是一个Windows安全问题,而不是编程问题。通常这是正确的。但是,在上面的测试用例中,我显式地删除了所有继承的权限。因此,创建的文件夹实际上没有任何权限。