2012-02-04 51 views
1

下面的代碼,運行從本地硬盤驅動器管理員,使用.NET Framework 2.0,有時會引起在第二行的UnauthorizedAccessException無法更新文件屬性:拒絕訪問

IO.File.SetAttributes(File, IO.FileAttributes.Normal) 
IO.File.SetAttributes(File, IO.FileAttributes.Archive) 

這發生在一個網絡驅動器。錯誤的文件具有奇怪的權限(請參閱文章的結尾),儘管完美的讀寫工作。

更糟的是,即使是從資源管理器中,試圖改變權限失敗,首先要求管理員權限,那麼失敗反正:

Access denied, requiring admin rights Failing anyway

任何想法?我完全喪失了。


這裏的文件權限的截圖: 這一個工程:

Authorized access

這一個不:

Unauthorized access

回答

2

我不知道法國人多在所有(這是正確的語言?),但它看起來像第一個工作,因爲你是一個用戶e服務器端(Linux用戶)。在網絡驅動器上工作時,您必須擁有服務器上的權限才能更改文件屬性。否則,它將不得不在服務器端進行更改。

編輯:根據服務器設置和文件類型,某些服務器在保存到網絡驅動器時也可以更改文件權限。這些更改可能會被鎖定,只有具有服務器憑據的人才能修改它們,然後代碼會因該異常而失敗。

編輯2:它也可能通過索引綁定在服務器端,幾分鐘後,你會得到回訪。

+0

這是法語,但它除了「拒絕訪問」外沒有任何其他說法。這些文件如何寫入,但其屬性無法更改? – 2012-02-04 23:10:01

+0

@ Clement也許該文件是以只讀方式訪問的,用於索引,服務器上的病毒監視,或者服務器端可能更改的屬性,並且通過這樣做更改權限,即使您最初使用憑據將文件保存在其中。在我工作的本地網絡上,我發現某些文件類型會發生這種情況。 – jordanhill123 2012-02-04 23:19:05

+1

服務器也可以更改文件的所有權,並防止修改屬性。 – jordanhill123 2012-02-04 23:23:02