2009-01-29 109 views
1

我似乎无法更改文件上的只读标志。我已经在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; 
} 

回答

2

不可能在UnauthorizedAccessException中更改文件的只读属性,导致应用程序使用您在计算机中拥有的权限执行。

如果您没有权限将此文件正常更改为只读,则您的应用程序也不会更改此属性。

亲切的问候。 Josema。

1

您正在尝试当你改变只读标志的文件得到UnauthorisedAccessException。你不能那样做。你可以(也应该)做的只是通知用户他/她没有访问权限来保存文件,并提供保存在其他地方。

+0

这样做!我把支票抬高了,它运作得很好。 – JoelHess 2009-01-29 14:42:51

相关问题