Unter Windows kommt es ab und an einmal vor, dass es Dateien gibt die sich nicht löschen lassen. Meistens liegt dies an einem der vier folgenden Problemen:
- Der Pfad in dem die Datei liegt ist zu lang (mehr als 255 Zeichen).
- Der Dateiname ist zu lang (inklusive Pfad mehr als 255 Zeichen).
- Die Datei ist in Benutzung (geöffnet/gesperrt durch ein Programm/Windows).
- Die Berechtigung zum Löschen fehlt dem aktuellen Benutzer.
All diese Probleme lassen sich mehr oder weniger leicht lösen. Falls nicht hilft eine Suche in der Suchmaschine Deiner Wahl mit passenden Suchbegriffen (Beispielsweise: Datei löschen Berechtigung Windows, Datei löschen gesperrt Windows oder Datei Pfad zu lang löschen Windows).
Hartnäckige Dateien
Ich hatte gerade den Fall einer besonders hartnäckigen Datei die sich nicht löschen oder umbenennen ließ. Der Dateiname war zu lang und es waren Sonderzeichen darin enthalten.
Ein Skript hatte automatisiert die Datei angelegt. Aufgrund der Sonderzeichen und der Länge der Bezeichnung ist diese im Dateisystem ungültig geworden.
Normalerweise hilft es hier eine Eingabeaufforderung (DOS-Box) mit Administratorechten zu starten und dort die Datei in ein übergeordnetes Verzeichnis zu verschieben oder umzubenennen und dann zu löschen.
In meinem Fall meldete die DOS-Box bei jeglichem Befehl, dass der Dateiname zu lang sei. Auch eine Anzeige des Kurznamens mit „dir /x“ gelang nicht. Wenn ich im Explorer mit der rechten Maustaste auf die Datei klickte, schloss sich der Windows Explorer ohne eine Meldung.
Löschen durch Überschreiben mit Robocopy
Schließlich konnte ich die Datei mit der Hilfe des Programms „robocopy“ löschen. Auf diese Notlösung kam ich über einen Forenbeitrag und einen Microsoft-Wissen-Artikel (Nummer KB320081 deutsch, englisch).
Um dies nachzuvollziehen öffne bitte die Eingabeaufforderung (DOS-Box) mit Administratorechten.
- Dazu führst Du in Windows 7 bis 10 eine Windows Suche aus (Taste mit dem Windows-Zeichen zwischen „Strg“ und „Alt“ auf der Tastatur drücken),
- gibst „cmd“ (in das Suchfeld) ein,
- klickst schließlich mit der rechten Maustaste auf das Suchergebnis
- und wählst „Mit Administrator-Rechten ausführen“.
- Sollte Windows eine Meldung anzeigen kannst Du diese mit „Ja“ bestätigen.
In dem sich öffnenden schwarzen Fenster gibst Du bitte die folgenden Befehle Zeile für Zeile ein. Nach dem Eingeben einer Zeile bitte mit der „Enter“-Taste auf der Tastatur den Befehl ausführen. Damit das mit Deinen Dateien auch funktioniert bitte die Laufwerksbuchstaben und das Zielverzeichnis entsprechend anpassen (fett und kursiv hervorgehoben):
mkdir D:\TempLoeschen
robocopy.exe D:\TempLoeschen D:\MeinzulangerPfad\nochlaenger /MIR
rmdir D:\TempZumLoeschen
Das sieht dann in etwa so aus:
Was hier passiert
- Du legst mit dem ersten Befehl ein neues leeres Verzeichnis an.
- Der Befehl „robocopy.exe /MIR A B“ spiegelt das Verzeichnis A im Verzeichnis B. Da in unserem Fall das Verzeichnis A leer ist, leert robocopy auch das Verzeichnis B und löscht damit ohne Rückfrage alles was sich in diesem Verzeichnis befindet.
- Du löschst das leere Verzeichnis.
Hallo, vielen Dank für den hilfreichen Tipp! Hat mich gerade als Dienstleister bei einem Kunden gerettet! Gruß Achim Wagner