Zum Hauptinhalt springen
  1. Braindump/

Nicht löschbare Dateien löschen

2 min
Marcel Ryser
Autor
Marcel Ryser
Softwarearchitekt und Tech-Enthusiast aus Bern

Versteckte Datei oder reservierter Name
#

Es kann vorkommen, dass du Dateien auf einem NTFS-Volume nicht löschen kannst, selbst als Mitglied der Administratoren-Gruppe.

Das kann verschiedene Ursachen haben. Einige sind unter http://support.microsoft.com/kb/320081/en-us beschrieben.

Cause 5: The file name includes a reserved name in the Win32 name space

Diese Ursache hatte ich schon mehrfach, sie lässt sich aber beheben mit

del \\?\C:\path_to_file\file.dat

um genau diese Datei trotzdem zu löschen.

Der Dateiname oder die Erweiterung ist zu lang.
#

Das passiert bei sehr tiefen Ordnerstrukturen, danach lassen sich Dateien oder Ordner nicht mehr löschen. Beheben lässt sich das mit einem kleinen Trick, den ich gelernt habe. Ziel ist es, die Pfadlänge so weit zu reduzieren, dass Windows sie wieder handhaben kann. Der passende Befehl ist subst.

C:\>subst /?
Associates a path with a drive letter.

SUBST [drive1: [drive2:]path]
SUBST drive1: /D

  drive1:        Specifies a virtual drive to which you want to assign a path.
  [drive2:]path  Specifies a physical drive and path you want to assign to
                 a virtual drive.
  /D             Deletes a substituted (virtual) drive.

Type SUBST with no parameters to display a list of current virtual drives.

Ein Beispiel:

C:\>subst G: C:\Documents and Settings\user\Desktop\One Folder\A Subfolder\A Subsubfolder\

Jetzt ist der Inhalt von “C:\Documents and Settings\user\Desktop\One Folder\A Subfolder\A Subsubfolder" als Laufwerk G: erreichbar, was die Pfadlänge reduziert – und das Löschen einer Datei ist kein Problem mehr.

Ordner löschen, für die ich keine Berechtigung habe (Vista/Windows 7)
#

Starte eine Administrator-Konsole (cmd.exe mit Administratorrechten) und wechsle in den betreffenden Ordner. Führe den folgenden Befehl aus, um die Berechtigungen zu ändern und deinem Benutzer Zugriff zu geben.

C:\>icacls "<path to folder or file>" /grant <username>:(D,WDAC) /t

Der Befehl gibt dem Benutzer <username> Schreib- und Löschrechte für diese Datei/diesen Ordner und alle Unterordner und Dateien.

Ein Beispiel:

C:\>icacls "C:\FolderIwantAccessTo" /grant metawave:(D,WDAC) /t