2011-02-10 54 views
0

在C#中抛出的时候我进行了两次测试:没有例外试图删除UNC路径上的文件夹受权限限制

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

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

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

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

+1

这可能是你想问SuperUser的问题,因为它更像是一个Windows安全问题,而不是一个编程问题。 – 2011-02-10 16:44:06

回答

1

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

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

+0

通常这是正确的。但是,在上述测试用例中,我明确地删除了所有继承的权限。因此,创建的文件夹几乎没有任何权限。 – Elan 2011-02-10 20:20:53