Unvollständiges Löschen von großen Bäumen
Moderators: Hacker, Stefan2, white
Unvollständiges Löschen von großen Bäumen
Ich wollte auf einem Netzlaufwerk einen großen, verschachtelten Dateibaum (ca. 850 MB in tausenden von Dateien) mit TC löschen (direkt, ohne Papierkorb).
Es wurden zunächst zahlreiche Dateien gelöscht, dann kamen einige Dialoge daß Verzeichnisse nicht gelöscht werden könnten und der Vorgang brach ab. Bei jedem weiteren Versuch das gleiche Bild: Zunächst wurde eine Weile gelöscht, dann Fehlermeldungen und Abbruch.
Es waren keine gelockten/geöffneten Dateien im Spiel. Als ich in der Directorystruktur abgestiegen bin und zuerst Teilbäume für sich gelöscht habe, konnte ich von unten nach oben alle Dateien und Verzeichnisse entfernen. Sah fast nach einem Mengen- oder Timing-Problem aus.
Kennt jemand das Phänomen, daß man große Dateibäume zwar in Einzelteilen, aber nicht am Stück löschen kann?
Es wurden zunächst zahlreiche Dateien gelöscht, dann kamen einige Dialoge daß Verzeichnisse nicht gelöscht werden könnten und der Vorgang brach ab. Bei jedem weiteren Versuch das gleiche Bild: Zunächst wurde eine Weile gelöscht, dann Fehlermeldungen und Abbruch.
Es waren keine gelockten/geöffneten Dateien im Spiel. Als ich in der Directorystruktur abgestiegen bin und zuerst Teilbäume für sich gelöscht habe, konnte ich von unten nach oben alle Dateien und Verzeichnisse entfernen. Sah fast nach einem Mengen- oder Timing-Problem aus.
Kennt jemand das Phänomen, daß man große Dateibäume zwar in Einzelteilen, aber nicht am Stück löschen kann?
- sqa_wizard
- Power Member
- Posts: 3896
- Joined: 2003-02-06, 11:41 UTC
- Location: Germany
Ist bei mir nur einmal passiert.
Dort war der Pfadname (inkl. Dateiname) länger als 256 Zeichen.
Das ist länger als erlaubt!
Dabei versucht TC eine Datei zu löschen, deren Dateiname nur unvollständig ist (zu lang). Er findet diese nicht, kann sie nicht löschen und verweigert folgerichtig auch das Löschen des nichtleeren Verzeichnisses.
Dort war der Pfadname (inkl. Dateiname) länger als 256 Zeichen.
Das ist länger als erlaubt!
Dabei versucht TC eine Datei zu löschen, deren Dateiname nur unvollständig ist (zu lang). Er findet diese nicht, kann sie nicht löschen und verweigert folgerichtig auch das Löschen des nichtleeren Verzeichnisses.
#5767 Personal license
Das Problem ist nicht nur der Dateiname, sondern der gesamte Pfad.
Wenn Deine Datei z. B.
heißt, dann ist sie nach den Dateisystemkonventionen nicht mehr lesbar. Sobald Du jedoch nach c:\ein ganz langer pfad\mit einem langen unterverzeichnis\ wechselst, heißt die Datei fürs Dateisystem nur noch .\das wieder ein langes Unterverzeichnis hat\in dem sich wiederum ein Unterverzeichnis befindet\mit einem\anderen Unterverzeichnis\das gar\nicht so\lang ist\das aber\trotzdem ein\Unterverzeichnis ist\und ab hier ist der Dateiname zu lang.txt, womit der Name wieder kurz genug iost, und damit gefunden und gelöscht werden kann.
gehe doch mal auf eine Datei, die nicht gelöscht werden konnte und hole sie dir mit kompletten Pfad in die Befehlszeile per Umsch+Strg+Eingabe. Dann kannst Du mal die Zeichen für den gesamten Pfad abzählen.
Es gibt auch irgen ein Inhalts-Plugin, das die Gesamtlänge des Pfades ermittelt, weiss aber gerade nicht, wie es heißt.
sheepdog
Wenn Deine Datei z. B.
Code: Select all
c:\ein ganz langer pfad\mit einem langen unterverzeichnis\das wieder ein langes Unterverzeichnis hat\in dem sich wiederum ein Unterverzeichnis befindet\mit einem\anderen Unterverzeichnis\das gar\nicht so\lang ist\das aber\trotzdem ein\Unterverzeichnis ist\und ab hier ist der Dateiname zu lang.txt
gehe doch mal auf eine Datei, die nicht gelöscht werden konnte und hole sie dir mit kompletten Pfad in die Befehlszeile per Umsch+Strg+Eingabe. Dann kannst Du mal die Zeichen für den gesamten Pfad abzählen.
Es gibt auch irgen ein Inhalts-Plugin, das die Gesamtlänge des Pfades ermittelt, weiss aber gerade nicht, wie es heißt.
sheepdog
"A common mistake that people make when trying to design something
completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
Filename ChrCountEs gibt auch irgen ein Inhalts-Plugin, das die Gesamtlänge des Pfades ermittelt, weiss aber gerade nicht, wie es heißt
http://www.totalcmd.net/plugring/wdx_Filename_ChrCount.html
Räubi
(#2852 + #287609)
(#2852 + #287609)
2Nop:
Du kannst mein Programm DirEx (28 KB) probieren. Es zählt die Unterordner und Dateien eines Ordners, ermittelt die Gesamtgröße, die älteste und die neueste, die kleinste und die größte Datei, sowie den längsten Pfadnamen. Ist manchmal ganz nützlich, um einen Überblick zu gewinnen.
Hilfe gibt's bei Aufruf von DirEx ?
Gruß, Jürgen
Du kannst mein Programm DirEx (28 KB) probieren. Es zählt die Unterordner und Dateien eines Ordners, ermittelt die Gesamtgröße, die älteste und die neueste, die kleinste und die größte Datei, sowie den längsten Pfadnamen. Ist manchmal ganz nützlich, um einen Überblick zu gewinnen.
Hilfe gibt's bei Aufruf von DirEx ?
Gruß, Jürgen
My add-ons and plugins for TC: NiftyLink, mbox, Sequences
2Nop:
Vielleicht lag es ja doch nicht an zu langen Pfadnamen. Ich nehme mal an dass die Fehlermeldungen keinen Hinweis auf die mögliche Ursache enthielten, oder? Hast du denn eine Idee, worin sich die Verzeichnisse, die nicht gelöscht werden konnten, von den anderen Verzeichnissen unterschieden?
Gruß, Jürgen
Vielleicht lag es ja doch nicht an zu langen Pfadnamen. Ich nehme mal an dass die Fehlermeldungen keinen Hinweis auf die mögliche Ursache enthielten, oder? Hast du denn eine Idee, worin sich die Verzeichnisse, die nicht gelöscht werden konnten, von den anderen Verzeichnissen unterschieden?
Gruß, Jürgen
My add-ons and plugins for TC: NiftyLink, mbox, Sequences
Nachtrag:Juergen wrote:2Nop:
Vielleicht lag es ja doch nicht an zu langen Pfadnamen.
Schalte doch mal probehalber die langen Dateinamen aus: Konfigurieren > Einstellungen > Ansicht > [ ] Lange Dateinamen verwenden.
Lässt sich dann der ganze Baum löschen?
Gruß, Jürgen
My add-ons and plugins for TC: NiftyLink, mbox, Sequences
Die Ursache könnte auch sein, dass ein Windows-Explorer Fenster oder ein "Datei öffnen" Dialog einfach nur den Verzeichnisinhalt eines betroffenen untergeordneten Verzeichnisses anzeigt. Auch Programme die die Standard Explorer Funktionen nutzen und irgendwie das Verzeichnis offen halten können Schuld sein.
Dann sperrt sich der Commander, bzw. Windows auch gegen ein Löschen und führt zu eben einer solchen Verweigerungskaskade wie Du sie geschildert hast.
Da hier nicht mal eine Datei gesperrt wird, scheint natürlich erst mal unerklärlich wieso das Löschen verweigert wird. Schuld ist aber der Explorer
Dann sperrt sich der Commander, bzw. Windows auch gegen ein Löschen und führt zu eben einer solchen Verweigerungskaskade wie Du sie geschildert hast.
Da hier nicht mal eine Datei gesperrt wird, scheint natürlich erst mal unerklärlich wieso das Löschen verweigert wird. Schuld ist aber der Explorer

- ghisler(Author)
- Site Admin
- Posts: 50841
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
Eventuell enthielt auch ein Verzeichnis versteckte oder Systemdateien. Diese werden nur dann gelöscht, wenn deren Ansicht in der Konfiguration von TC eingeschaltet ist.
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
Danke für die Hinweise, aber ich glaube keins davon trifft zu. Der Ablauf war:
- mehrere Komplettlöschversuche gescheitert. Fehler "Verzeichnis kann nicht gelöscht werden"
- keine Änderungen an der Konfig des TC, keine Änderungen in irgendeinem anderen Programm
- teilweises Löschen von unten nach oben funktioniert.
Vielleicht hat ja der Netzwerkzugriff den Pfad noch mit einer Serverkennung oder sowas verlängert, die für mich nicht sichtbar war.
Ich glaub' ich werd' nicht weiter rätseln was da passiert ist. Danke nochmal an alle die mitgegrübelt haben.
- mehrere Komplettlöschversuche gescheitert. Fehler "Verzeichnis kann nicht gelöscht werden"
- keine Änderungen an der Konfig des TC, keine Änderungen in irgendeinem anderen Programm
- teilweises Löschen von unten nach oben funktioniert.
Vielleicht hat ja der Netzwerkzugriff den Pfad noch mit einer Serverkennung oder sowas verlängert, die für mich nicht sichtbar war.
Ich glaub' ich werd' nicht weiter rätseln was da passiert ist. Danke nochmal an alle die mitgegrübelt haben.
Der einzige Weg, einen Verzeichnisbaum im TC ganz sicher zu löschen ist ein Logoff und TC-Start ohne in den Unterverzeichnissen vorher zu arbeiten.
Es ist beispielsweise oftmals unmöglich, ein Verzeichnis zu löschen, in dem man die Uninstallroutine des jeweiligen Programms aufgerufen hat. Im Explorer hingegen kann die Löschung problemlos durchgeführt werden, auch während der TC läuft und sich weigert.
Es ist nach meiner Erfahrung auch völlig typisch, daß das Löschen im TC zuverlässiger funktioniert, wenn man "von unten her" löscht, aber 'ne Lösung ist das natürlich nicht. Da Unlocker in diesen Fällen keine gelockten Dateien oder Verzeichnisse anzeigt, liegt das Problem im TC.
Icfu
Es ist beispielsweise oftmals unmöglich, ein Verzeichnis zu löschen, in dem man die Uninstallroutine des jeweiligen Programms aufgerufen hat. Im Explorer hingegen kann die Löschung problemlos durchgeführt werden, auch während der TC läuft und sich weigert.
Es ist nach meiner Erfahrung auch völlig typisch, daß das Löschen im TC zuverlässiger funktioniert, wenn man "von unten her" löscht, aber 'ne Lösung ist das natürlich nicht. Da Unlocker in diesen Fällen keine gelockten Dateien oder Verzeichnisse anzeigt, liegt das Problem im TC.
Icfu
Last edited by icfu on 2006-06-29, 15:17 UTC, edited 2 times in total.
This account is for sale
Sind denn die Verzeichnisse im Netzwerk als Netzlaufwerk gemappt? Also hast Du dafür einen eigenen Laufwerksbuchstaben?Nop wrote:Vielleicht hat ja der Netzwerkzugriff den Pfad noch mit einer Serverkennung oder sowas verlängert, die für mich nicht sichtbar war.
sheepdog
"A common mistake that people make when trying to design something
completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams
completely foolproof is to underestimate the ingenuity of complete fools."
Douglas Adams