Frage

Ich versuche Flag zu setzen, der die Read Only Kontrollkästchen angezeigt werden verursacht, wenn Sie auf eine Datei right click \ Properties.

Danke!

War es hilfreich?

Lösung

Zwei Möglichkeiten:

System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath);
fileInfo.IsReadOnly = true/false;

oder

// Careful! This will clear other file flags e.g. FileAttributes.Hidden
File.SetAttributes(filePath, FileAttributes.ReadOnly/FileAttributes.Normal);

Die IsReadOnly-Eigenschaft auf Fileinfo tut im Wesentlichen des Bit-Flipping Sie manuell in der zweiten Methode tun müßten.

Andere Tipps

gesetzt der Nur-Lese-Flag in der Tat macht die Datei nicht beschreibbar:

File.SetAttributes(filePath,
    File.GetAttributes(filePath) | FileAttributes.ReadOnly);

Entfernen der Nur-Lese-Flag in der Tat macht die Datei beschreibbar:

File.SetAttributes(filePath,
    File.GetAttributes(filePath) & ~FileAttributes.ReadOnly);

Toggle Nur-Lese-Flag, ihm das Gegenteil macht von was auch immer es jetzt ist:

File.SetAttributes(filePath,
    File.GetAttributes(filePath) ^ FileAttributes.ReadOnly);

Dies ist im Grunde Bitmasken in Kraft. Sie legen ein bestimmtes Bit der Read-Only-Flag zu setzen, Sie klar, die Flagge zu entfernen.

Beachten Sie, dass der obige Code wird keine andere Eigenschaften der Datei ändern. Mit anderen Worten, wenn die Datei versteckt wurde, bevor Sie den obigen Code ausgeführt wird, wird bleibt es auch danach versteckt. Wenn Sie einfach stellen Sie die Datei auf .Normal oder .ReadOnly Attribute könnten Sie andere Flags in dem Prozess am Ende verlieren.

c #:

File.SetAttributes (filePath, FileAttributes.Normal);

File.SetAttributes (filePath, FileAttributes.ReadOnly);

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