Wie lösche ich eine Datei in Windows mit einem zu langen Dateinamen?

360741
user3048

Meine Frau hat mehrere Dateien und Ordner, die irgendwie mit Dateinamen endeten, die dazu geführt haben, dass sie nicht mehr löschbar waren (können nicht gelöscht werden), mit normalen Mitteln oder über die Befehlszeile. Ich glaube, dass die Dateinamen aufgrund der Tiefe der Ordnerstrukturen zu lang sind. Kennt jemand ein gutes Programm zum Aufräumen von Dateien wie diesem?

195
Wie wurden diese Dateien erstellt? Nick vor 13 Jahren 0
Tut mir leid, dass ich dieses Thema nicht kenne, aber sollte Windows diese Dateien nicht verarbeiten? Sollte das, was Eddins veröffentlicht, nicht automatisch von Windows ausgeführt werden (auch nicht vom Explorer)? Stefanos Kalantzis vor 10 Jahren 0
@ Mokubai- Die Duplikatfrage sollte als Duplikat dieser als markiert markiert werden, da ** diese Frage älter ist **. cybermonkey vor 8 Jahren 2
@cybermonkey: Und es hat eine bessere Antwort. Ellesedil vor 8 Jahren 1
Für weitere Leser ist die [7zip-Methode mit "CTRL" + "DELETE"] (http://superuser.com/a/78458/437813) meiner Meinung nach die einfachste Methode ... Christian Gollhardt vor 7 Jahren 0
https://superuser.com/a/1263183/439537 Andrew vor 6 Jahren 0

8 Antworten auf die Frage

416
Benoit

Wenn Sie ein Verzeichnis vollständig löschen möchten und es eine Datei mit langen Namen enthält, leistet robocopy eine sehr gute Arbeit:

mkdir empty_dir robocopy empty_dir the_dir_to_delete /s /mir rmdir empty_dir rmdir the_dir_to_delete 

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

Möglicherweise müssen Sie diesen Vorgang mehr als einmal durchlaufen, um alle Dateien zu entfernen.

Effizient, wenn im Dateisystem kein Kurzname (8.3) gespeichert ist. Antoine RODRIGUEZ vor 10 Jahren 1
Ich hatte einen 8.3-Dateinamen, aber sie funktionierten nicht. Das hat funktioniert. Ciantic vor 10 Jahren 0
Dies funktionierte gut mit meinem hartnäckigen Windows Store [Cache-Dateien] (http://superuser.com/questions/724427/what-is-a-0-namespace-http-file-and-how-to-delete-it) lehnte die Löschung ab. Vielen Dank! Samir vor 10 Jahren 1
Ich musste zu der Robocopy-Linie hinzufügen / bereinigen, damit dies funktioniert, aber danach hat es funktioniert actionshrimp vor 9 Jahren 1
@actionshrimp, `/ MIR` impliziert` / PURGE`. Ich verstehe nicht, wie das Hinzufügen von "/ PURGE" das Verhalten ändern kann! Benoit vor 9 Jahren 0
Robocopy hat mich in dieses Chaos gebracht, aber es kam mir nie in den Sinn, Robocopy zu benutzen, um mich davon zu befreien. Gute Antwort! Vielen Dank! Jay Michaud vor 9 Jahren 3
@Benoit: 2³² ??? Heiliger Mist, das ist eine hohe Zahl! > _ < SarahofGaia vor 8 Jahren 0
@ bgallagh3r: Das sind viele Internets. Sie sagen nämlich, dass sie 10 × 59,9 EiB = 599 000 EiB gewinnen. Das sind 585 ZiB oder 691 ZB !!! Sind Sie sicher, dass sie so viele Daten verdienen ?! > _ < SarahofGaia vor 8 Jahren 0
@Benoit: Ich verstehe die Kommandozeile bis zu einem gewissen Grad noch nicht. Gib ich für das von Ihnen gegebene Beispiel einfach das ein, was Sie dort eingegeben haben? Und wenn ja, was ersetze ich mit was? SarahofGaia vor 8 Jahren 0
Schöne Idee, aber mit zehn rekursiven Ordnern hat es für mich nicht funktioniert. Nur Rimraf hat gearbeitet. Julian Knight vor 8 Jahren 0
@SarahofGaia, mein schlechtes, es ist eigentlich 2¹⁶ - 1 Benoit vor 8 Jahren 2
Am Tag gerettet ... Manoj Attal vor 8 Jahren 1
erstaunliche Antwort, es fühlt sich an wie alt und für sterbliche verbotene Fenster Kraft aliopi vor 8 Jahren 0
Gute Antwort! Viel besser als diejenigen, die Sie von Hand umbenennen oder Dateien einzeln löschen müssen - mit diesem können Sie es einfach loslegen, nach einer Weile wiederkommen und alles ist erledigt. Zu der Antwort, dass Robocopy mit den neuesten Windows-Versionen (Vista +) kommt, ist es vielleicht wert, hinzugefügt zu werden. Ich war damit nicht vertraut, und es wird davon ausgegangen, dass einige andere dies möglicherweise nicht sind. Steve Chambers vor 8 Jahren 0
@Benoit: Laut der Robocopy-Befehlszeilenhilfe entspricht / MIR / E plus / PURGE, bedeutet das nicht, dass / S nicht notwendig ist? (/ E ist das gleiche wie / S, enthält jedoch leere Unterverzeichnisse.) Avalanchis vor 8 Jahren 0
Hauptbeispiel funktionierte nicht unter Windows 10 ... kopierte keine der Dateien aus dem Verzeichnis ...] Ich denke, Unicode war das Problem an erster Stelle ... die meisten US-Entwickler machen es nicht aus Die Mehrheit der Menschen auf der Welt spricht kein Englisch. Dawesi vor 7 Jahren 0
Funktioniert gut, aber langsam. eomeroff vor 7 Jahren 0
Das funktioniert super. Ich bin ein Javascript / Winkel Entwickler. Die über npm installierten Module verursachen immer die gleichen Probleme. Ich verwende diesen Befehl zum Löschen dieser Module. Ich habe diese Antwort in meinem Browser mit einem Lesezeichen versehen. @Benoit Vielen Dank ... Paulson Peter vor 7 Jahren 0
perfekte Antwort! Monis vor 7 Jahren 0
Dies funktioniert nicht, wenn das Problem der gesamte Pfad und nicht nur der Dateiname ist. Robocopy kann die Dateien in dieser Situation nicht löschen. Martin Argerami vor 6 Jahren 0
90
Will Eddins

Über eine Eingabeaufforderung:

dir /X 

Dadurch werden Ihre Dateien / Ordner im Kurznamenformat aufgelistet. Verwenden Sie dann den Kurznamen genau wie geschrieben, um die Datei zu löschen:

del LONGF~1.txt 
Ich mag das, es ist ein schönes Querdenken. Col vor 14 Jahren 1
Ich kann zwar nicht garantieren, dass es in diesem Fall funktionieren wird, aber ich habe es mehrmals verwendet, um Ordner zu löschen, die am Ende ungültige Zeichen haben, die das Löschen auf normale Weise unmöglich machen. Will Eddins vor 14 Jahren 0
Ich habe diese Technik nur zum Löschen einer Datei mit einem ungültigen Dateinamen verwendet - es war eine Datei mit dem Namen "},". Dieser Tipp hat es gelöst. Danke, Wache. Charles Roper vor 14 Jahren 0
Dies funktioniert für Dateien und Ordner im aktuellen Verzeichnis, aber wenn Sie sich innerhalb eines Ordners, dessen Pfad zu lang ist, irgendwie finden, hilft es nicht. Zum Beispiel bin ich gerade in einer Konsole auf einem zu langen Pfad und kann nicht einmal "dir" oder "cd ..". Bobson vor 12 Jahren 1
@Bobson Wenn Sie `dir` nicht verwenden können, verwenden Sie stattdessen` pushd`. Das hat bei mir funktioniert. BadHorsie vor 10 Jahren 1
Vielen Dank für diese einfache Lösung eines sehr ärgerlichen Problems! DeathByTensors vor 9 Jahren 0
Arbeitete für mich. Ich bin übrigens unter Windows 7 fedmich vor 7 Jahren 0
Dies funktioniert nicht mit Windows 10, der angezeigte Dateiname ist der lange Loenix vor 6 Jahren 3
52
joeqwerty

Ich arbeite mich progressiv in den Pfad ein, benenne jeden nachfolgenden übergeordneten Ordner in "1" um und versuche zu löschen. Sie verkürzen den Pfad jedes Mal effektiv, und ich musste noch nie um mehr als 4 oder 5 Verzeichnisse arbeiten, bis ich schließlich die gesamte Verzeichnisstruktur löschen kann (was möglicherweise nicht Ihren Vorstellungen entspricht). Sie können dies auch aus dem letzten untergeordneten Ordner tun und sich nach oben oder unten bewegen.

Dies war das einzige, was für mich funktionierte. Alle anderen Tricks, die hier und in anderen Foren wie diesem gegeben wurden, haben nicht funktioniert. Andrew Arnott vor 13 Jahren 7
Froh, dass ich Helfen kann... joeqwerty vor 13 Jahren 3
War der einzige Vorschlag, der seltsam genug wirkte. Nestor Ledon vor 9 Jahren 0
Dies funktionierte für mich, eine Abkürzung, die mir half, war "mv * 1 && cd 1". Dies funktionierte nicht, wenn sich mehrere Dateien im Verzeichnis befanden, aber zu diesem Zeitpunkt übte ein `rm -rf *` normalerweise den Trick. Alexander Varwijk vor 8 Jahren 0
@Alexander: Ihr Vorschlag ist wohl nicht thematisch, da diese Frage mit [Windows] gekennzeichnet ist. Es sei denn, Sie schlagen vor, dass dies sogar bei einer Linux-Live-CD erforderlich sein könnte. Oder Sie schlagen Cygwin vor, wie es [hier] getan wurde (http://superuser.com/a/817319/150988). Nun, da diese Frage als Duplikat abgeschlossen ist, möchten Sie möglicherweise Ihren Kommentar zum anderen erneut posten. Scott vor 8 Jahren 0
Ich dachte, ich habe die obigen Arbeiten irgendwie an Fenstern gemacht (ohne zusätzliche Werkzeuge). Die Art und Weise, wie ich es aufgeschrieben habe, funktioniert natürlich nicht. Leider kann ich es momentan nicht reproduzieren: / Vielleicht habe ich den Windows-Tag einfach vermisst. Alexander Varwijk vor 8 Jahren 0
Die Möglichkeit, dies ohne zusätzliche Software schnell zu beheben, war ein großer Gewinn in meinem Buch! gut gemacht Bobby Borszich vor 8 Jahren 0
Dies kann in Windows 10 nicht durchgeführt werden. Umbenennen löst Fehler "Dateiname zu lang" aus Dawesi vor 7 Jahren 1
Arbeitete für meine Zwecke in Fenster 7. Musste über 7 Ordner tief umbenennen. Damon vor 7 Jahren 0
Dies hat nicht nur das Problem für mich gelöst, sondern auch erklärt, wie ich überhaupt mit dem Problem fertig wurde. Ich muss einen Pfad gehabt haben, der nahe am Limit lag. Dann habe ich einen übergeordneten Ordner umbenannt (der Name wurde etwa wie "Backup November 2016 Save" hinzugefügt), wodurch die Dateien in Unterordnern über das Limit hinaus verschoben wurden. Es ist gut, die Ursache und die Lösung zu kennen, auch wenn ich weiß, dass dies auch auf andere Weise geschehen kann. Ich denke, dies ist eine übliche Art und Weise, wie dies bei den Leuten der Fall ist. eselk vor 7 Jahren 2
Der einzige, der in Windows 10 für mich funktioniert hat, danke! ;) So ein blödes Ding wirklich. Ich kann nicht glauben, dass MS die Erstellung von Dateien zulässt, die nicht gelöscht werden können. Fügen Sie einfach meine Liste der dummen Dinge hinzu, die Windows (MS) tut. James Wilkins vor 6 Jahren 0
13
grawity

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

\\. \ C: \ ein Verzeichnis \ anderes Verzeichnis \ eine Datei mit langem Namen
funktioniert nicht in Windows 10 Dawesi vor 7 Jahren 2
danke, cmd hat in Win7 `rm -rf \\ verzeichnisname` einen Zauber gemacht Philip Pryde vor 7 Jahren 0
13
AdamV

Ein Trick, den ich verwendet habe, um die Längenbegrenzung für "vollständiger Pfad und Dateiname" zu umgehen, um etwas zu verschieben, zu kopieren oder zu löschen, ist die Verkürzung, indem er mit einem zugeordneten Laufwerksbuchstaben, der auf einen Ordner zeigt, halb niedergedrückt wird (oder mehr) den Weg hinunter .

Sie haben also c: \ einige \ long \ path ... \ und \ foo \ bar \ ordner \ oldfiles \ myoldfile.txt.

Ordnen Sie dann einen beliebigen Laufwerksbuchstaben irgendwo entlang des Pfads zu, so dass der erste Abschnitt des Pfads nur wenige Zeichen lang wird. Voraussetzung - der Ordner muss sich in einem freigegebenen Ordner befinden (der bereits vorhanden ist, wenn er sich auf einem Server befindet, wo ich dies tun musste), und wenn er sich nicht bereits befindet, wählen Sie einen Ordner im Pfad aus und teile es. Erlauben Sie jedem Benutzer, den Zugriff auf die Freigabe zu ändern, solange die NTFS-Berechtigungen einigermaßen einschränkend sind. Wenn Sie möchten, erlauben Sie nur Änderungsrechte nur für Ihr eigenes Konto.

Gehen Sie jetzt zum freigegebenen Ordner oder zu einem Ordner, geben Sie ihn frei oder verwenden Sie die Befehlszeile wie folgt. Angenommen, Sie haben den Ordner "foo" als "fooshare" freigegeben, dann können Sie dies tun

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

Das X: -Laufwerk zeigt nun direkt auf den Ordner "Ordner" in dieser Freigabe. Daher ist "x: \ oldfiles \ myoldfile.txt" jetzt ziemlich kurz.

(Das "/ persistent: no" bedeutet, dass dies den nächsten Neustart nicht übersteht und Sie später verwirrt. Vergessen Sie nicht, Ihren Ordner nach der Fertigstellung aufzuheben.)

Denken Sie daran, dass Sie den Ordner, der die Datei enthält, nicht unbedingt freigeben müssen. Wenn sich der Ordner bereits in einem freigegebenen Ordner befindet, können Sie einfach durch die Freigabe und die verschachtelten Ordner einen Zielordner in der Nähe der Datei zuordnen. Das funktioniert problemlos.

Ich musste diese Technik verwenden, um eine massive Robokopie zwischen zwei Servern durchzuführen, als wir feststellten, dass die Benutzer Laufwerke ziemlich tief in der Ordnerstruktur zugeordnet hatten. Daher konnten sie 255 Zeichen von dort verwenden, was jedoch die gesamte Dateipfadlänge überschritt bei Zugriff vom lokalen Laufwerksstamm aus.

Sie können die Freigabe vermeiden, indem Sie `subst x: C: \ Some \ first \ part \ of \ long \ path` verwenden und anschließend das Laufwerk mit` subst x: / d` löschen mihi vor 9 Jahren 4
Netter Versuch, aber wenn Sie zehn Ordner mit verschachtelten Ordnern haben, ist dies nicht möglich. Julian Knight vor 8 Jahren 1
Der `subst`-Trick scheint gut zu funktionieren, solange der Dateiname nicht * so * ist, damit er 260 Zeichen überschreitet, selbst wenn er sich im Stammverzeichnis eines Laufwerks befindet. Stephen Chung vor 7 Jahren 0
Sie müssen auch keinen Ordner explizit für "net use" freigeben. Sie können die standardmäßigen Admin-Freigaben verwenden: "net use x: \\ localhost \ c $ \ bar \ folders / persistent: no" kapex vor 7 Jahren 0
9
Col

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

Alternativ können Sie einen freigegebenen Ordner auf halbem Weg im Pfad erstellen und dann ein Netzlaufwerk zuordnen und aus dem zugeordneten Ordner löschen (sogar auf demselben Computer).

Es ist lustig, wie oft eine Ubuntu Live-CD bei der Behebung von Windows-Problemen hilft ^^ Ivo Flipse vor 14 Jahren 16
Ich habe bemerkt, dass ich selbst, zwielichtiges Netzwerk, eine Live-CD ausprobiert habe, Dateisystemprobleme, eine Live-CD versuchen, beschädigte Partitionstabelle usw. usw. :-) Col vor 14 Jahren 1
Dies ist die einzige Lösung, die für mich funktioniert hat. Ich liebe dich, Linux! <3 David Frye vor 9 Jahren 0
Bash unter Windows ausführen Kein Linux erforderlich. ;-) Auch wenn Sie Windows 10 ausführen, installieren Sie einfach "Windows Subsystem for Linux". Grundsätzlich verwendet Windows ubuntu api hooks, um die Aufgabe zu erledigen. Dazu gehören "apt, ssh, rsync, find, grep, awk, sed, sort, xargs, md5sum, gpg, curl, wget, apache, mysql, python, perl, rubin, php, gcc, tar, vim, emacs, diff, patch und die meisten der zehntausenden binären Pakete in den Ubuntu-Archiven! "Dies ist eine sehr vollständige Linux-Entwicklungsumgebung, die zufällig unter Windows läuft. Http://www.zdnet.com/article/ubuntu-and-bash-arrive-on-windows-10/ Dawesi vor 7 Jahren 1
cygwin ist eine weitere Alternative zum Ausführen von LINUX-Befehlen in Windows atom88 vor 7 Jahren 0
5
Rook

Benennen Sie das Verzeichnis um, indem Sie die Datei an einer anderen Stelle ausschneiden / einfügen und dann löschen. Funktioniert hier

Oder einfach über die Eingabeaufforderung, wenn Sie keine Lust haben.

Das funktioniert wie ein Zauber. Suchen Sie dort nach unten (für mich waren die Ordner "node_modules" super verschachtelt), ziehen Sie sie auf Ihren Desktop und löschen Sie sie. Spülen Sie und wiederholen Sie den Vorgang, während Sie gleichzeitig einige Ordner nach oben ziehen. Was für ein widerliches Problem. nickb vor 9 Jahren 0
Das hat für mich nicht funktioniert - der Einfügevorgang ist wegen des langen Dateinamens fehlgeschlagen - egal wo geschnitten wird. UpTheCreek vor 8 Jahren 6
1
William Hilsum

Wahrscheinlich nicht der beste Weg und ich bin gespannt, was andere dazu bringen -

Ich hatte dies einmal und versuchte ein paar Dinge ohne Glück. Anstatt nach einem guten Werkzeug zu suchen, wurde ich mit der Windows-Diskette neu gestartet, ging zur Wiederherstellungskonsole und löschte es einfach von dort. Beim ersten Mal gearbeitet und wirklich gut!

Auch habe ich gerade ein Google für Sie gefunden und dies gefunden - DelinvFile sieht gut aus, kann aber nicht dafür bürgen.

Edit - Achtung, das obige ist nur eine Prüfung - vielleicht nicht so gut, wie ich zuerst dachte!

Der freie Rimraf funktioniert einwandfrei und funktionierte, wenn alle anderen Ideen versagten. Es erfordert node.js Julian Knight vor 8 Jahren 0