2011-02-10 56 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