2009-09-23 15:56:39 +0000 2009-09-23 15:56:39 +0000
203
203

Wie löscht man in Windows eine Datei mit einem zu langen Dateinamen?

Meine Frau hat mehrere Dateien und Ordner, die irgendwie mit Dateinamen versehen wurden, die sie auf normalem Wege oder über die Befehlszeile unlöschbar (nicht löschbar) gemacht haben. Ich glaube, die Dateinamen sind aufgrund der Tiefe der Ordnerstrukturen zu lang. Kennt jemand ein gutes Hilfsprogramm zur Bereinigung von Dateien wie dieser?

Antworten (8)

428
428
428
2012-08-29 13:38:16 +0000

Wenn Sie ein Verzeichnis vollständig löschen wollen und es lange Pfade enthält, leistet robocopy SEHR gute Arbeit:

mkdir empty_dir
robocopy empty_dir the_dir_to_delete /mir
rmdir empty_dir
rmdir the_dir_to_delete

Dies funktioniert, weil robocopy intern [ verwendet die Unicode-fähigen Versionen von Win32-Funktionen, mit dem Präfix \?Wenn Sie ein Verzeichnis vollständig löschen wollen und es lange Pfade enthält, leistetrobocopy` SEHR gute Arbeit:

mkdir empty_dir
robocopy empty_dir the_dir_to_delete /mir
rmdir empty_dir
rmdir the_dir_to_delete

Dies funktioniert, weil robocopy intern verwendet die Unicode-fähigen Versionen von Win32-Funktionen, mit dem Präfix für Dateipfade ; diese Funktionen haben ein Limit von 2¹⁶-1 (32.767) Zeichen anstelle von 259.

Sie müssen diesen Prozess möglicherweise mehr als einmal durchlaufen, um alle Dateien loszuwerden.

91
91
91
2009-09-23 16:01:40 +0000

Von einer Eingabeaufforderung aus:

dir /X

Dies listet Ihre Dateien/Ordner in einem kurzen Namensformat auf. Verwenden Sie dann den Kurznamen genau wie geschrieben, um die Datei zu löschen:

del LONGF~1.txt
53
53
53
2009-09-23 17:40:55 +0000

Ich arbeite mich nach und nach in den Pfad hinein, benenne jeden aufeinanderfolgenden übergeordneten Ordner in “1” um und versuche, ihn zu löschen. Sie verkürzen den Pfad jedes Mal effektiv, und ich mußte noch nie um mehr als 4 oder 5 Verzeichnisse arbeiten, bis ich endlich in der Lage bin, die gesamte Verzeichnisstruktur zu löschen (was vielleicht oder vielleicht auch nicht das ist, was Sie wollen). Sie könnten dies auch vom letzten Unterordner aus tun und sich nach oben oder unten vorarbeiten.

13
13
13
2009-09-23 16:12:29 +0000

In einigen Programmen, einschließlich der Eingabeaufforderung (cmd.exe), können Sie die Dateilängenbegrenzung umgehen, indem Sie dem vollständigen Pfad \.In einigen Programmen, einschließlich der Eingabeaufforderung (cmd.exe`), können Sie die Dateilängenbegrenzung umgehen, indem Sie dem vollständigen Pfad wie folgt voranstellen:

\.\C:\some directory\other directory\a file with long name
13
13
13
2012-02-21 17:18:15 +0000

Ein Trick, den ich benutzt habe, um die Längenbeschränkung “voller Pfad und Dateiname” zu umgehen, um etwas zu verschieben, zu kopieren oder zu löschen, ist, es zu verkürzen, indem ich es auf halber Strecke (oder mehr) ‘einbreche’ unter Verwendung eines zugeordneten Laufwerksbuchstabens, der auf einen Ordner ganz unten im Pfad zeigt.

also haben Sie c:\einen\langen\Pfad…\und\foo\bar\Ordner\Ordner\Myoldfile.txt.

Dann ordnen Sie einen beliebigen Laufwerksbuchstaben irgendwo entlang des Pfades zu, so dass der erste Teil des Pfades nur wenige Zeichen lang wird. Voraussetzung - der Ordner muss sich in einem freigegebenen Ordner befinden (was er bereits sein kann, wenn er sich auf einem Server befindet, wo ich dies tun musste), und wenn er es nicht schon ist, dann wählen Sie einen Ordner irgendwo im Pfad und geben Sie ihn frei. Abhängig von Ihrer Umgebung und Ihrem Paranoia-Level sollten Sie jedem erlauben, den Zugriff auf die Freigabe zu ändern, solange die NTFS-Berechtigungen einigermaßen restriktiv sind. Wenn Sie möchten, erlauben Sie die Änderungsrechte nur für Ihr eigenes Konto.

Gehen Sie nun zu dem freigegebenen Ordner oder einem Ordner darin und geben Sie ihn frei, oder verwenden Sie die Befehlszeile wie folgt. Angenommen, Sie geben den gemeinsamen Ordner “foo” als “fooshare” frei, dann könnten Sie

net use x: \mycomputername\fooshare\bar\folders /persistent:no

tun und das Laufwerk X: zeigt nun direkt auf den Ordner “folders” innerhalb dieser Freigabe, so dass “x:\oldfiles\myoldfile.txt” nun ziemlich kurz ist.

(Das “/persistent:no” bedeutet, dass dies den nächsten Neustart nicht überleben und Sie später verwirren wird. Vergessen Sie nicht, Ihren Ordner wieder freizugeben, wenn Sie damit fertig sind)

Denken Sie daran, dass Sie den Ordner, der die Datei enthält, nicht unbedingt freigeben müssen; wenn er sich bereits in einem freigegebenen Ordner befindet, können Sie die Freigabe und die verschachtelten Ordner einfach durch die Freigabe und die verschachtelten Ordner einem Zielordner naher der Datei zuordnen, und das funktioniert gut.

Ich musste diese Technik bei einer massiven Robokopie zwischen zwei Servern anwenden, als wir feststellten, dass die Benutzer Laufwerke ziemlich tief in der Ordnerstruktur zugeordnet hatten, so dass sie von dort aus 255 Zeichen verwenden konnten, aber das überschritt die Gesamtlänge des Dateipfades, wenn der Zugriff vom lokalen Laufwerksstamm aus erfolgte.

9
9
9
2009-09-23 15:59:00 +0000

Der einfachste Weg, den ich gefunden habe, ist das Booten von einer Ubuntu-Live-CD.

Als Alternative können Sie einen freigegebenen Ordner auf halber Strecke des Pfades erstellen und dann ein Netzlaufwerk darauf abbilden und die Löschung aus dem abgebildeten Ordner vornehmen (sogar auf demselben Rechner)

5
5
5
2009-09-23 19:39:20 +0000

Benennen Sie das Verzeichnis des Ausschneidens/Einfügens der Datei an anderer Stelle um und löschen Sie es dann. Funktioniert hier.

Oder einfach von der Eingabeaufforderung aus, wenn Sie keine Lust haben, sich die Mühe zu machen.

1
1
1
2009-09-23 16:00:00 +0000

Wahrscheinlich nicht der beste Weg, und ich bin daran interessiert zu sehen, was andere sich ausdenken -

Ich hatte das einmal und habe ein paar Dinge ohne Glück ausprobiert. Anstatt nach einem guten Tool zu suchen, startete ich mit eingelegter Windows-Diskette neu, ging zur Wiederherstellungskonsole und löschte sie einfach von dort. Funktionierte auf Anhieb und wirklich gut!

Außerdem habe ich gerade ein Google für Sie gemacht und das hier gefunden - DelinvFile Sieht gut aus, kann aber nicht dafür bürgen.

Bearbeiten - Warnung, das oben Gesagte ist nur ein Versuch - Vielleicht nicht so gut, wie ich zuerst dachte!