我似乎无法更改文件上的只读标志。我在Vista和XP上尝试了相同的结果,因此我不认为这是与UAC相关的问题。
我所做的一切似乎都没有效果。请参阅下面的示例。有人能告诉我我做错了吗?
public bool UpdateResFile(string fileName, string language, string objectName, string NewValue)
{
FileInfo fi = new FileInfo(fileName);
try
{
//Do Stuff
xDoc.Save(fileToUpdate);
}
catch (UnauthorizedAccessException)
{
//fi.IsReadOnly = false;
File.SetAttributes(fileName, FileAttributes.Normal);
//fi.Attributes -= FileAttributes.ReadOnly;
return UpdateResFile(fileName, language, objectName, NewValue);
}
catch (System.Exception ex)
{
Console.WriteLine(ex.Message);
return false;
}
return true;
}
答案 0 :(得分:2)
我认为您正在寻找的内容在本msdn文章
底部的用户内容部分中有所描述http://msdn.microsoft.com/en-us/library/system.io.file.setattributes.aspx
答案 1 :(得分:2)
无法在UnauthorizedAccessException中更改文件的只读属性,因为应用程序正在使用您在计算机中拥有的权限执行。
如果您没有权限将此文件正常更改为只读,则您的应用程序也不会更改此属性。
亲切的问候。 Josema。
答案 2 :(得分:1)
当您收到UnauthorisedAccessException时,您正尝试更改文件上的只读标志。你不能这样做。您可以(而且应该)做的就是通知用户他/她没有访问权限来保存文件,并提供保存在其他地方。