Ich habe die SO gesucht, aber nichts gefunden.
Warum funktioniert das nicht?
%Vor%Oberhalb der Zeile wird die Ausnahme "Zugriff verweigert" ausgelöst. Ich habe Administratorrechte und kann das Verzeichnis mit dem Explorer löschen.
Sieht aus wie einige verbotene Zeichen? aber Windows Explorer kann damit umgehen. Wie kann ich Verzeichnisse mit solchen Namen löschen?
Vielen Dank für Ihre Eingabe, es hilft mir bei der schnellen Lösung.
Wie Phil erwähnt "Directory.Delete schlägt fehl, wenn es ist, unabhängig von Berechtigungen (siehe unten msdn.microsoft.com/en-us/library/...)"
Zusätzlich Kann das schreibgeschützte Attribut nicht aus dem Ordner entfernen Microsoft sagt:
Möglicherweise können Sie die Datei nicht entfernen Schreibgeschütztes Attribut aus einem Ordner Verwenden von Windows Explorer. In Ergänzung, Einige Programme zeigen möglicherweise Fehler an Nachrichten, wenn Sie versuchen, Dateien zu speichern der Ordner.
Fazit: Entferne immer alle dir, Dateiattribute anders als Normal, bevor du löschst. So unter dem Code lösen Sie das Problem:
%Vor%Haben Sie versucht, eine neue Instanz der Klasse DirectoryInfo zu erstellen, und dann die Existenz vor dem Löschen überprüfen? Der Code würde so aussehen:
%Vor%Überprüfen Sie außerdem, ob Sie (der Benutzer, der die Anwendung ausführt) Zugriff auf den Ordner haben. Wenn es sich um ein Netzwerklaufwerk handelt, muss es vom Benutzer, der die Anwendung ausführt, gelöscht werden können.
Hoffe, das hilft!
Je nach dem Verzeichnis, in dem Sie arbeiten, benötigen Sie wahrscheinlich Administratorzugriff, um Dateien zu löschen. Um dies zu testen, führen Sie Ihre App als Administrator aus dem Explorer aus und überprüfen Sie, ob sie funktioniert (klicken Sie mit der rechten Maustaste auf die EXE-Datei und wählen Sie "Als Administrator ausführen").
Wenn das funktioniert, müssen Sie Administratorrechte erhalten, wenn Ihre Anwendung ausgeführt wird. Sie können dies tun, indem Sie Ihrem Anwendungsmanifest Folgendes hinzufügen:
%Vor%Ich hatte dieses Symptom und es war tatsächlich explorer.exe selbst, die das Verzeichnis gesperrt hat. Ich fand dies mit handle.exe , aber man kann auch mit powershell herausfinden, welcher Prozess gesperrt ist die Datei:
%Vor%Sie müssen dann entscheiden, ob Sie versuchen, diesen Prozess anmutig zu stoppen oder nicht; Es wäre einfach, das Powershell-Skript zu ändern, um zu versuchen, alle Prozesse zu beenden, die die Datei sperren:
%Vor%Tags und Links c#