Der beste Weg, um eine Datei beschreibbar in c # machen
-
05-07-2019 - |
Frage
Ich versuche Flag zu setzen, der die Read Only
Kontrollkästchen angezeigt werden verursacht, wenn Sie auf eine Datei right click \ Properties
.
Danke!
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);