Nur einen Trick erwähnen, den ich hier noch nicht gesehen habe.
Nehmen Sie diese Datei zum Beispiel:
C:\Folder1\Really Long Path\Such Recursion\So Deep\Wow\Still Going\I will run out of ideas soon\I have organizational problems\Obsessive compulsive subdirectory disorder\Here is a guid for no good reason\936DA01F-9ABD-4d9d-80C7-02AF85C822A8\Almost there\Tax Returns\2013\2013_tax_return.pdf
Dieser vollständige Dateipfad ist 290 Zeichen lang. Die Shell (Windows Explorer) und die meisten Befehlszeilenprogramme lassen Sie wahrscheinlich nicht berühren.
Verwenden Sie den subst
Befehl wie folgt:
subst X: "C:\Folder1\Really Long Path\Such Recursion\So Deep\Wow"
Jetzt können Sie auf folgende Weise auf die Datei zugreifen (und sie löschen, verschieben usw.):
X:\Still Going\I will run out of ideas soon\I have organizational problems\Obsessive compulsive subdirectory disorder\Here is a guid for no good reason\936DA01F-9ABD-4d9d-80C7-02AF85C822A8\Almost there\Tax Returns\2013\2013_tax_return.pdf
Und jetzt ist dieser Dateiname nur noch ~ 235 Zeichen oder so, sodass Sie nicht mehr auf die Probleme "Dateiname ist zu lang" stoßen.
In der Windows-API gibt es eine berüchtigte Konstante namens MAX_PATH
. MAX_PATH besteht aus 260 Zeichen. Das NTFS-Dateisystem unterstützt Dateipfade mit bis zu 32.767 Zeichen. Sie können weiterhin Pfadnamen mit einer Länge von 32.767 Zeichen verwenden, indem Sie auf die Unicode-Versionen (oder "Wide" -Versionen) der Windows-API-Funktionen zugreifen und dem Pfad das Präfix voranstellen \\?\
.
MAX_PATH
wurde vor sehr langer Zeit in der Windows-Welt in Stein gemeißelt . Ich denke, es hat etwas mit ANSI-Standards zu tun ... aber es ist eines der Dinge, die für Microsoft sehr schwierig sind, jetzt zu ändern, da wir jetzt Tausende von Programmen und Anwendungen haben, einschließlich einiger von Microsoft selbst geschriebener Programme, die diese verwenden MAX_PATH
und würde auf seltsame Weise versagen, wenn die Konstante plötzlich geändert würde. (Pufferüberlauf, Heap-Beschädigung usw.)