So löschen Sie eine Datei, deren Pfad zu lang ist, um gelöscht zu werden [duplizieren]

203

Ich habe mit einem Computer Vision-Quellcode gearbeitet, den ich gefunden habe, und habe nicht bemerkt, dass eine Cache-Datei mit einem SEHR LANGEN Namen erstellt wird. Jetzt kann ich die beiden nicht mehr löschen.

Ich habe versucht, es in einen kürzeren Namen umzubenennen, aber ich kann nichts mit der Datei anfangen. Ich habe auch versucht, meinen Computer neu zu starten und zu prüfen, ob sie einfach verschwinden würde.

Die Fehlermeldung lautet:

Zielpfad zu lang.

Die Dateinamen sind zu lang für den Zielordner. Sie können den Dateinamen verkürzen und es erneut versuchen oder einen Speicherort mit einem kürzeren Pfad auswählen.

Bildschirmfoto

Wie kann ich in diesem Fall die Dateien löschen?

Chris
quelle
Würde es mit dem delBefehl von der Kommandozeile aus funktionieren ? Etwas in der Art del *.cachesollte alle .cache-Dateien im aktuellen Verzeichnis löschen.
Ryan
"Pfad \ zu \ Ordner \ CACHEI ~ Das System konnte die angegebene Datei nicht finden", hieß es zweimal und es befinden sich 2 Dateien darin, aber es wurde nichts unternommen
Chris
Beim zweiten Gedanken könnten Sie eine der anderen Fragen überprüfen, die bereits beantwortet wurden. Dieser zum Beispiel.
Ryan
1
Wenn nur noch diese beiden Dateien im Verzeichnis vorhanden sind, können Sie möglicherweise das gesamte Verzeichnis löschen. Versuchen Sie an der Eingabeaufforderung, rd /s directoryname Dies löscht directorynamealle darin enthaltenen Dateien / Unterverzeichnisse.
Gehen

Antworten:

353

Angenommen, Sie arbeiten unter Windows:

Was ich immer mache, ist subst , um eine Laufwerksbuchstabenzuordnung mit einem Teil des Pfades zu erstellen.

Wechseln Sie dann zu dem neuen Laufwerksbuchstaben und navigieren Sie zu den Dateien mit langen Namen. Sie sollten jetzt in der Lage sein, sie umzubenennen / zu löschen / etc. Der Grund dafür ist, dass der Pfad selbst keine> 255 Zeichen mehr enthält.

So erstellen Sie einen Unterordner

  1. Starten Sie eine Eingabeaufforderung (keine Administratorrechte erforderlich)
  2. Verwenden Sie cddiese Taste, um zu dem Ordner zu navigieren, in den Sie wechseln möchten (Sie können sie tabzum automatischen Vervollständigen von Namen verwenden
  3. Geben Sie subst j: .den Laufwerksbuchstaben Zuordnung zu erstellen. (Anstelle von "." können Sie auch den gesamten Pfad eingeben.)
  4. Jetzt im Explorer haben Sie einen neuen Laufwerksbuchstaben in diesem PC . Gehen Sie dazu und tun Sie alles, was Sie für die .cache-Dateien benötigen.
  5. Kehren Sie zu Ihrem Cmd-Fenster zurück und geben Sie ein subst /d j:, um das Laufwerk zu entfernen, oder starten Sie alternativ Ihren PC neu.

EDIT: Ein Trick, den ich gelernt habe und der das ziemlich verkürzen kann. Klicken Sie im Explorer-Fenster, in dem Sie Probleme haben, auf die Adressleiste, damit Sie sie eingeben können. Geben Sie dann ein cmdund drücken Sie Enter, um an dieser Stelle eine Eingabeaufforderung zu starten. Fahren Sie dann mit Schritt 3 fort. :)

EDIT2: Okay, dieser Trick kann noch erweitert werden. Wenn Sie sich im Explorer auf dem richtigen Pfad befinden, geben Sie einfach subst j: .die Adresse in die Adressleiste ein und drücken Sie die Eingabetaste. Ein Befehlsfenster öffnet sich, führen Sie den Befehl aus und schließen Sie es erneut. Nun öffnet sich ein neues Laufwerk im Explorer.

LPChip
quelle
26
robocopy empty_dir base_nested_dir / purge - Erstellen Sie einfach ein leeres Verzeichnis und weisen Sie robocopy an, alle Daten im Zielverzeichnis zu löschen, die sich nicht im leeren Verzeichnis stackoverflow.com/a/3320317/588759
rofrol
7
Ich habe es gerade versucht und konnte die betreffende Datei nicht entfernen. Ich verwende Cygwin unter Windows. Eine alternative Lösung besteht darin, die Datei auf diese Weise zu entfernen: rm -R / path / in / question, solange kein anderes Programm die Datei verwendet Sie sind gut zu gehen
John
1
Ich hatte ein Problem, bei dem SUBST J: nicht als Parameter erkannte (es wurden auch keine verfügbaren virtuellen Laufwerke angezeigt), sodass die von John erwähnte Cygwin-Option gut funktionierte.
Tisch
1
@rofrol, Sie sollten Ihren Robocopy-Kommentar zu einer Antwort machen: Es ist weitaus einfacher, als den Ansatz der Verzeichnisnamen anzuwenden, wenn Sie mit vielen untergeordneten Verzeichnissen (wie denen, die in erstellt wurden node_modules) arbeiten
Andy Brown
1
Johns Lösung funktionierte sehr gut für mich, fügte nur den -f (force-Parameter) hinzu: rm -R -f / pathToDelete
Christophe Keller
67

In Ihrer Frage wird gefragt, wie eine Datei gelöscht werden soll, wenn der Dateiname selbst zu lang ist. Wenn der Pfad zu lang ist und nicht nur der Dateiname selbst, können Sie die Ordner einfach umbenennen, um den Pfad zu verkürzen.

So löschen Sie eine Datei, deren Name mehr als 255 Zeichen umfasst:

  • Öffnen Sie eine Eingabeaufforderung, indem Sie "CMD.EXE" ausführen
  • Navigieren Sie zu dem Ordner, in dem sich die Datei befindet
  • Verwenden Sie den Befehl DIR / X, um die Kurznamen der Dateien anzuzeigen.
  • Löschen Sie mit dem Kurznamen.

Wenn die Datei den Namen "verylongfilename.fil" hat, wird der Kurzname als "verylo ~ 1.fil" angezeigt, und Sie können ihn löschen.

Beachten Sie, dass Windows selbst zwar Pfade verarbeiten kann, die länger als 255 Zeichen sind, der Großteil der Benutzeroberfläche - wie auch der Windows Explorer - jedoch an die kürzere Grenze gebunden ist.

Debra
quelle
16
Dies ist eine bessere Antwort als die angenommene.
Ben
3
Die gewählte Antwort ist besser, weil Sie mit dieser Methode ganze Ordner löschen können
mcont
2
aber in Windows 7 scheint, dass DIR / x hier überhaupt keine Anzeige ändert ... :(
gumuruh
3
Einige NTFS-Dateisysteme verfügen NICHT über 8.3-Entsprechungen. Das funktioniert also nicht immer mehr.
Ross Presser
Del / S von CMD arbeitete für mich sogar mit großem Namen am 8.
Jeff
4

Googled: lösche langen Dateinamen Erstes Ergebnis

Benutze Unlocker http://www.filehippo.com/download_unlocker/

Ordner kann nicht gelöscht werden: Wird von einer anderen Person oder einem anderen Programm verwendet. Datei kann nicht gelöscht werden: Zugriff verweigert. Die Quell- oder Zieldatei wird möglicherweise verwendet. Die Datei wird von einem anderen Programm oder Benutzer verwendet. Stellen Sie sicher, dass der Datenträger nicht voll oder schreibgeschützt ist und die Datei derzeit nicht verwendet wird.

Unlocker kann helfen! Klicken Sie einfach mit der rechten Maustaste auf den Ordner oder die Datei und wählen Sie Unlocker. Wenn der Ordner oder die Datei gesperrt ist, wird ein Fenster mit Schließfächern angezeigt. Klicken Sie einfach auf Alle entsperren und Sie sind fertig!

Wutnaut
quelle
1
Ich habe das gesehen, wusste aber nicht, ob die Verwendung von Unblocker sicher ist, also habe ich es ignoriert und probiere es aus. EDIT: hat nicht funktioniert. Es funktioniert bei anderen Dateien, aber der Unblocker wird nicht in der Dropdown-
Chris
Dies ist mit Sicherheit die einfachste Möglichkeit, obwohl möglicherweise ein Neustart erforderlich ist, um den Vorgang abzuschließen. Mit Unlocker stimmt überhaupt nichts - es wird seit Jahren verwendet und ist ein sehr nützliches Dienstprogramm. Im Fall einer Datei oder eines Ordners, dessen Pfad zu lang ist, findet er keinen Sperrpunkt, sollte jedoch die Option Löschen in der Dropdown-Liste hinterher anbieten.
Steve Pettifer
1
Es hat einwandfrei funktioniert - lustig ist, dass ich diese Software installiert habe, mir aber nicht in den Sinn gekommen bin, sie in dieser Situation zu verwenden.
Daniel Sokolowski
Funktionierte nicht für einen anderen Ordner, in den ich einen Ordner mit kreisförmigen Verknüpfungen kopierte, aber was funktionierte, war, jeden Ebenenordner in ein Zeichen 1umzubenennen und es dann zu löschen.
Daniel Sokolowski
Dies war die einzige Antwort, die für mich funktioniert hat (ich verwende Windows 10). Vielen Dank!
user26832
4

Microsoft hat einen nützlichen Knowledge Base-Artikel zum Löschen nicht löschbarer Dateien . Ursache 4 ist für Sie relevant.

Am besten ordnen Sie ein Laufwerk dem Ordner zu, in dem sich die Datei befindet (Auflösung 3). Geben Sie dann über dieses Laufwerk ein und löschen Sie es.

Compro01
quelle
1
Ich habe noch nie gedacht, dass ich ein Netzwerklaufwerk einem Ort auf meiner eigenen Festplatte zuordnen kann. Das habe ich im Windows Explorer gemacht. Nach dem Navigieren zum Laufwerk konnte ich den Ordner und den Inhalt leicht löschen. Das gleiche Prinzip wie bei den oben gezeigten Konsolenlösungen, aber dies ist eine schnelle GUI-Lösung, die für mich einfacher war.
RandomHandle