Ich verwalte mit Node.js regelmäßig Abhängigkeiten für Programme, die ich schreibe, keine große Sache. Heute hatte ich eine Ordnerstruktur wie diese:
Beim Versuch, eine Datei zu löschen, ist folgender Fehler aufgetreten:
Die Quelldateinamen sind größer als vom Dateisystem unterstützt. Versuchen Sie, an einen Ort mit einem kürzeren Pfadnamen zu wechseln, oder benennen Sie ihn in kürzere Namen um, bevor Sie diesen Vorgang ausführen.
Es war bereits in C: \, also würde es nicht viel kürzer werden.
windows-7
windows
filesystems
Seiyria
quelle
quelle
Antworten:
Verwenden Sie das Microsoft-Tool
robocopy.exe
.c:\empty
Kopieren Sie dann diesen leeren Ordner in den Ordner, der die langen Dateinamen enthält, die Sie löschen möchten, z
c:\myannoyingfolder
. Tun Sie dies in der Eingabeaufforderung wie folgt:robocopy / MIR c: \ empty c: \ myannoyingfolder
quelle
Okay, nehmen wir an, Sie möchten einen Baum löschen
D:\very\long\path
, müssen aber nicht unbedingt Werkzeuge wie Robocopy verwenden.D:\a
D:\very\long\path
D:\a
quelle
Ich habe angefangen, dieses Problem zu tippen, während ich eine Vielzahl von Befehlen ausprobiert habe, einschließlich
del /F
undrmdir /S
( und beim Löschen die Umschalttaste gedrückt gehalten, um zu versuchen, den Papierkorb zu umgehen). Ich denke, dassrmdir /S
tatsächlich alle Dateien gelöscht, so dass ich mit dem Löschen der Ordner fortfahren konnte, die Blattknoten waren, und dann den Baum ein paar Knoten nach dem anderen weiterentwickelte. Schließlich habe ich sie alle aufgeräumt, aber das war lächerlich.quelle
Sie können diese Funktionalität in die Windows-Shell integrieren. Meine Verbesserung von Flos Antwort war zu lang für einen Kommentar.
Ich
Delete
habe dem Windows-Kontextmenü einen Befehl hinzugefügt .Die
delete.reg
Datei fügt Registrierungseinträge hinzu, um derrobodelete.bat
Batchdatei Ordner zuzuordnen.delete.reg
robodelete.bat
Hinweis : Möglicherweise müssen Sie die Pfade in beiden Dateien gemäß Ihren Einstellungen ändern.
WARNUNG : Dieser Befehl kann nicht rückgängig gemacht werden. Der Papierkorb wird nicht verwendet, und Y / N wird nicht aufgefordert, dies zu bestätigen, bevor der Ordner endgültig gelöscht wird.
quelle
Das Open-Source-Befehlszeilentool SuperDelete ( GitHub ) hat bei mir funktioniert, nachdem andere Optionen fehlgeschlagen sind (Windows 10).
quelle
Der beste Weg, dies zu tun, ist die Verwendung von Robocopy. Ich habe dies in meinem persönlichen Blog dokumentiert, damit Sie Folgendes verfolgen können:
http://clintboessen.blogspot.com.au/2014/05/how-to-delete-files-which-exceed-255.html
quelle
In vielen Fällen funktioniert es, wenn Sie von einer Eingabeaufforderung aus eine CD in das Verzeichnis kopieren und DEL verwenden.
Wenn nicht, müssen Sie Ihren Namen in der Verzeichnisstruktur nachbearbeiten: Benennen Sie den Ordner der untersten Ebene in einen kürzeren Namen (z. B. "a"), dann den nächsthöheren Ordnernamen usw. um, bis der Gesamtpfad kurz genug ist. Wenn Sie von unten nach oben arbeiten, bearbeiten Sie immer Namen, deren vollständiger Pfad kürzer ist als der der endgültigen Dateien.
quelle
net use z: c:\path
del z:\*.*
Dementsprechend anpassen. Z: ist nur ein beliebiger Laufwerksbuchstabe, auf den der fehlerhafte Pfad abgebildet wird. Dieser letzte Löschbefehl löscht das GANZE Verzeichnis, das Sie zugeordnet haben - seien Sie also bei Bedarf genauer.
quelle
Ein guter Weg ist es, bootfähiges Linux auf pendrive zu haben und Dateien ohne Probleme von der Live-CD zu löschen .
quelle
Ich hatte auch das gleiche Problem, und ich fand es selbst, einfach den übergeordneten Ordner so wenig wie möglich umzubenennen. Ex. Wenn unser Ordner in " D " Laufwerk wie D: // Folder / Undelete_Folder . Das einzige, was Sie tun müssen, ist, dass Sie den übergeordneten Ordnernamen so klein wie " a " umbenennen können . dann ist Ihr Standort D: // a / Undelete_folde r. und löschen Sie dann den übergeordneten Ordner.
quelle
Wenn alle Stricke reißen
Gehen Sie zum letzten Verzeichnis in der Zeichenfolge. Schneiden Sie die Dateien aus. Fügen Sie sie in die vierte oder fünfte Datei in der Zeichenfolge ein. Dann sollte [Shift] + [Delete] den Trick machen.
Ich war skeptisch, die obige Eingabeaufforderung mit erhöhten Rechten auszuführen, als ich eine Testwiederherstellungsdatei aus einer DPM-Sicherung löschte.
hoffe das hilft.
quelle