Wie kann ich das Attribut readonly programmatisch aus einem Verzeichnis in C# entfernen?Entfernen Sie das Attribut readonly aus dem Verzeichnis
Antwort
var di = new DirectoryInfo("SomeFolder");
di.Attributes &= ~FileAttributes.ReadOnly;
hey darin, was bedeutet diese Syntax? "& = ~" Prost! – andy
& = -> Append also nicht alle anderen Attribute berühren und ~ -> ergänzen also das Gegenteil von readonly – MarkKGreenway
Hier ist eine gute Verbindung zu den Beispielen der Datei ändern Attribute C#
http://www.csharp-examples.net/file-attributes/
basierend auf ihrem Beispiel verwenden, können Sie das Lesen entfernen Nur wie dieses Attribut (ich dies nicht getestet):
File.SetAttributes(filePath, File.GetAttributes(filePath) & ~FileAttributes.ReadOnly);
kommen Sie auf alles über Datei. wana abt Verzeichnis .... bitte. –
@Red Swan: Ich habe gerade dies getestet, um versteckte Attribute hinzuzufügen, und es funktioniert auch gut mit Verzeichnissen. – Petrucio
Dies funktioniert für Dateien und Verzeichnisse, da ein Verzeichnis wie eine spezielle Datei mit dem Verzeichnisattribut (FileAttributes.Directory) ist. – seveves
Wenn Sie versuchen, das Attribut einer Datei im Dateisystem zu entfernen, erstellen Sie eine Instanz der System.IO.FileInfo-Klasse, und legen Sie die Eigenschaft IsReadOnly auf false fest.
FileInfo file = new FileInfo("c:\\microsoft.text");
file.IsReadOnly = false;
Nein nicht über die Datei. Ich möchte von Directory/Folder –
Got es endlich. ;)
class Program
{
static void Main(string[] args)
{
DirectoryInfo di = new DirectoryInfo("c:\\test");
FileAttributes f = di.Attributes;
Console.WriteLine("Directory c:\\test has attributes:");
DecipherAttributes(f);
}
public static void DecipherAttributes(FileAttributes f)
{
// To set use File.SetAttributes
File.SetAttributes(@"C:\test", FileAttributes.ReadOnly);
if ((f & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
Console.WriteLine("ReadOnly");
// To remove readonly use "-="
f -= FileAttributes.ReadOnly;
if ((f & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
Console.WriteLine("ReadOnly");
else
Console.WriteLine("Not ReadOnly");
}
}
die Verwendung von - = Zuweisungsoperator ist aus zwei Gründen gefährlich: 1) Es funktioniert nur, wenn die Readonly-Attribut gesetzt, damit ein Test im Voraus erforderlich ist. 2) Es führt eine Subtraktionsoperation durch, die nicht die beste Wahl ist, wenn mit binären Flags gearbeitet wird. Die Subtraktionsoperation funktioniert, wenn die Bedingung 1 (oben) wahr ist. Zusätzliche Subtraktionsoperationen ändern jedoch ANDERE BITS im Feld FileAttributes!
Verwenden Sie "& = ~ FileAttributes.ReadOnly;" ReadOnly-Flag zurücksetzen.
Verwenden Sie "| = FileAttributes.ReadOnly;" um das ReadOnly-Flag zu setzen.
Einstellung Attribute zu FileAttributes.Normal
arbeitete für mich auf beiden Ordner und Dateien.
Die einzige Sorge, die ich mit diesem Ansatz habe, ist, was ist, wenn der Ordner (oder die Datei) ein anderes Attribut hat? Wenn ein Ordner nur versteckt und schreibgeschützt ist und Sie ihn nur noch nicht mehr lesen lassen möchten, wird er von Ihrer Methode nicht mehr ausgeblendet. Das könnte unbeabsichtigte Konsequenzen haben. –
public static void DeleteDirectory(string path)
{
var directory = new DirectoryInfo(path)
{ Attributes =FileAttributes.Normal };
foreach (var info in directory.GetFileSystemInfos("*", SearchOption.AllDirectories))
{
info.Attributes = FileAttributes.Normal;
}
directory.Delete(true);
}
- 1. Entfernen Sie das Attribut readonly aus allen Eingabefeldern mit jquery?
- 2. So entfernen Sie das aktuelle Verzeichnis aus dem Python-Importpfad
- 3. So entfernen Sie alle Dateien aus dem Verzeichnis, ohne das Verzeichnis in Node.js zu entfernen
- 4. Wie kann ich das Attribut "readonly" hinzufügen und entfernen?
- 5. Entfernen Sie readonly in Compact Framework
- 6. Magento: Attribut aus dem Attributsatz programmgesteuert entfernen
- 7. Wie ReadOnly Status aus dem Android Emulator-Dateisystem zu entfernen?
- 8. ReadOnly Attribut in UWP
- 9. Toggle readonly Attribut im Eingabefeld
- 10. Wie ReadOnly Attribut in Datei mit PowerShell entfernen?
- 11. Entfernen Sie das Attribut "checked" des Kontrollkästchens
- 12. So laden Sie das Spring-Ressourcenpaket aus dem Tomcat-Verzeichnis
- 13. Leeres Verzeichnis aus CVS entfernen?
- 14. Readonly Attribut in MVC 4
- 15. Entfernen/Löschen einer App aus dem App-Verzeichnis in #yammer
- 16. hg Verzeichnis aus Repo entfernen?
- 17. Klicken Sie auf div und entfernen Sie das erforderliche Attribut
- 18. entfernen Xmlns aus dem Wurzelelement Attribut während jaxb Rangier
- 19. Entfernen Sie VSMacros80-Verzeichnis
- 20. Erhalten Sie einen Attributwert aus dem Attribut
- 21. shutil.rmtree zum Entfernen von Readonly-Dateien
- 22. Texteingabe-Readonly-Attribut im IE7 nicht erkannt?
- 23. Entfernen Sie Schlüssel aus dem Wörterbuch
- 24. Entfernen Sie stdClass Objekte aus dem Array
- 25. Entfernen C# -Attribut einer Eigenschaft dynamisch
- 26. Git - Entfernen Sie Commit aus dem Verlauf
- 27. Entfernen Sie alle Fragmente aus dem Container
- 28. Entfernen Sie die Erweiterung aus dem Schlüssel
- 29. Entfernen Sie ähnliche Objekte aus dem Array
- 30. nur auf einem Verzeichnis-Attribut gelesen Entfernen von mit C#
@Lalit Was möchten Sie erreichen? –
siehe Ich habe nur Ordner auf meinem Pfad gelesen. Ich möchte einige Dateien in diesem Ordner kopieren. so dass sie temporär schreibbar machen wollen, heißt readonly entfernen, dann kopieren sie die dateien dann wieder als leser. kannst du mir helfen? Dies ist Voraussetzung. –
Unter Windows ist das Attribut readonly in einem Verzeichnis tatsächlich ziemlich bedeutungslos. Sie können das Verzeichnis immer noch löschen, umbenennen usw. Siehe https://support.microsoft.com/en-us/help/326549/you-cannot-view-or-change-the-read-only-or-the-system-attributes-of-folders-in-windows -server-2003, -in-Windows-XP, -in-Windows-Vista-oder-in-Windows-7 für weitere Informationen. –