Einer unserer Kunden verwendet üblicherweise sehr lange Pfadnamen (mehrere verschachtelte Ordner mit langen Namen), und es treten routinemäßig "Probleme mit der Benutzererziehung" auf, um den Pfad auf weniger als 260 Zeichen zu verkürzen.
Gibt es eine technische Lösung, können wir in Windows 7 und Windows 2008 R2 eine Art Schalter betätigen, um zu sagen: "Ja, ignorieren Sie einfach diese historischen Probleme und lassen Sie den Pfadnamen mit +260 Zeichen funktionieren."
PS: Ich habe Dateien, Pfade und Namespaces gelesen und bin völlig unbearbeitet
windows
windows-server-2008
windows-7
ntfs
Christopher Edwards
quelle
quelle
Antworten:
Die Methoden sind vorhanden, aber bis Microsoft das Dateibrowser-Widget neu codiert, bleiben wir mit diesem alten Problem ziemlich fest. Es ist nicht optimal, aber so funktioniert es.
quelle
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: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 verwendenMAX_PATH
und würde auf seltsame Weise versagen, wenn die Konstante plötzlich geändert würde. (Pufferüberlauf, Heap-Beschädigung usw.)quelle
subst
Verwendung von Verzeichnis-Junctions. Dies ist möglicherweise einfacher zu bereinigen, wenn Sie nur ein paar schnelle Änderungen vornehmen möchten. Ich benutze Link - Shell - Erweiterung , aber Sie können nur die Verwendungmklink
Befehl wie folgt:mklink /J C:\Wow "C:\Folder1\Really Long Path\Such Recursion\So Deep\Wow"
.Sie können diese Einschränkung umgehen, indem Sie die \\? \ C: -Notation verwenden. Es ist hässlich, aber es unterstützt Dateilängen bis zu 2 ^ 15.
http://msdn.microsoft.com/en-us/library/aa365247(v=vs.85).aspx#maxpath
quelle
c:\usr-data
zu `c: \ Users \ VeryLongUserName \ LongFolderName` erstellen und ihm sagen, dass er den ersteren verwenden soll, aber wenn er regelmäßig Ordner mit 40 Zeichen benennt, hilft das nichts ...Microsoft verfügt jetzt über ein Update für dieses Problem ab Windows 10, das im MSDN-Artikel zum Benennen von Dateien, Pfaden und Namespaces erläutert wird .
darthcoder hat bereits mit Details zur
\\?\C:
Notationsumgehung geantwortet , aber es gibt jetzt einen Registrierungsschlüssel, mitHKLM\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled (Type: REG_DWORD)
dem die MAX_PATH-Einschränkungen für ein einzelnes System entfernt werden können. Der Artikel erwähnt auch die Unterstützung der GruppenrichtliniensteuerungComputer Configuration > Administrative Templates > System > Filesystem > Enable NTFS long paths
für die Organisation oder die gruppenweite Implementierung, falls erforderlich.quelle