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;
}
4

2 回答 2

2

无法在 UnauthorizedAccessException 处更改文件的只读属性,因为应用程序正在使用您在计算机中拥有的权限执行。

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

亲切的问候。何塞马。

于 2009-01-29T14:44:31.403 回答
1

当您收到 UnauthorisedAccessException 时,您正尝试更改文件上的只读标志。你不能那样做。您可以(并且应该)做的就是通知用户他/她没有将文件保存在那里的访问权限,并提出将文件保存在其他地方。

于 2009-01-29T14:10:49.303 回答