Frage

Ich kann nicht scheinen, um den Nur-Lese-Flag auf einer Datei zu ändern. Ich habe versucht, dies auf Vista und XP mit dem gleichen Ergebnis, so dass ich glaube nicht, dass es ein UAC verwandtes Thema.

Nichts, was ich getan habe, scheint allerdings zu arbeiten. Siehe unten stehende Probe. Kann mir jemand sagen, was ich falsch mache?

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;
}
War es hilfreich?

Lösung

Ist das nicht möglich, die nur lesen Attribut einer Datei auf UnauthorizedAccessException bewirken, dass die Anwendung mit den Berechtigungen ausgeführt zu ändern, die Sie in den Computer.

Wenn Sie nicht Berechtigungen haben in der Regel diese Datei zu ändern, nur zu lesen, Ihre Anwendung wird dieses Attribut nicht ändern entweder.

Mit freundlichen Grüßen. Josema.

Andere Tipps

Ich denke, was Sie suchen in den Benutzerinhalte Abschnitt am Ende dieses Msdn Artikels beschrieben wird,

http://msdn.microsoft.com /en-us/library/system.io.file.setattributes.aspx

Sie versuchen, read-only-Flag auf Datei zu ändern, wenn Sie einen UnauthorisedAccessException bekommen. Sie können das nicht tun. Alles, was Sie können (und sollten) tun ist, Benutzer zu benachrichtigen, dass er / sie keine Zugriffsrechte Datei dort zu speichern hat, und bieten woanders zu speichern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top