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

UnauthorizedAccessExceptionが発生したときに、ファイルの読み取り専用フラグを変更しようとしています。あなたはそれをすることはできません。あなたができる(そしてすべき)のは、ユーザーにファイルを保存するためのアクセス権がないことを通知し、別の場所に保存することを提案することだけです。

于 2009-01-29T14:10:49.303 に答える