2010-05-25 56 views
0

我有一個小的vb.net腳本,它將複製文件,將其屬性設置爲Normal,更新文件時間,然後設置屬性以匹配那些源文件。System.IO將複製文件,但無法更新目標文件屬性

If IO.File.Exists(Destination) Then IO.File.SetAttributes(Destination, IO.FileAttributes.Normal) 
IO.File.Copy(Source, Destination, True) 

IO.File.SetAttributes(Destination, IO.FileAttributes.Normal) 
IO.File.SetLastWriteTimeUtc(Destination, IO.File.GetLastWriteTimeUtc(Destination).AddHours(1)) 

IO.File.SetAttributes(Destination, IO.File.GetAttributes(Source)) 

但是我遇到了一個很奇怪的問題。在某些配置中,IO.File.SetLastWriteTimeUtc觸發UnauthorizedAccess錯誤,但IO.File.Copy指令工作得很好。

我完全不解:我檢查了,文件屬性成功設置爲128(即普通)。這個問題似乎與SetLastWriteTimeUtc非常相似。但是它是什麼?

任何想法?
非常感謝!

回答

0

如果您使用Vista或Windows 7,則需要將其作爲管理員運行,因爲UAC。嘗試運行它提升,它把工作很好

+0

謝謝!但是你知道發生這種情況的原因嗎?我並沒有在我自己的7臺機器上使用guest賬號來試驗這個問題。 – 2010-05-26 19:22:41

+0

UAC沒有解決問題... – 2010-06-03 16:57:36

相關問題