尝试使用受限权限删除UNC路径上的文件夹时,不会抛出异常

时间:2011-02-10 16:39:24

标签: c# windows permissions

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

  1. 我在本地驱动器上创建了一个没有任何访问权限的目录。尝试以编程方式删除目录会引发IOException。我本来期望一个UnauthorizedAccessException,但是我确实得到了一个IOException,并显示一条消息,指出“拒绝访问”。

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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