System.IO将复制文件,但无法更新目标文件属性

时间:2010-05-25 21:47:55

标签: vb.net security file-io attributes

我有一个小的vb.net脚本,它将复制文件,将其属性设置为Normal,更新文件时间,然后设置回属性以匹配源文件的属性。

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非常相似。但它是什么?

任何想法?
非常感谢!

1 个答案:

答案 0 :(得分:0)

如果您使用的是Vista或Windows 7,则需要将其作为管理员运行,因为UAC。尝试升高运行它并且它可以很好地运行