483 Stimmen

Warum gibt es unter Windows die Beschränkung der Pfadlänge auf 260 Zeichen?

Mit diesem Problem bin ich schon ein paar Mal in unpassenden Momenten konfrontiert worden:

  • Versuche, an Open-Source-Java-Projekten mit tiefen Pfaden zu arbeiten
  • Tiefe Fitnesse-Wiki-Bäume in der Versionskontrolle speichern
  • Fehler beim Versuch, meinen Versionskontrollbaum mit Bazaar zu importieren

Warum gibt es diese Grenze?

Warum ist sie noch nicht entfernt worden?

Wie gehen Sie mit der Wegbegrenzung um? Und nein, ein Wechsel zu Linux oder Mac OS X ist keine gültige Antwort auf diese Frage ;)

9 Stimmen

@Artelius: Tatsächlich unterstützt Windows (zumindest ab Win2K) Kreuzungspunkte ( de.wikipedia.org/wiki/NTFS_Junction_point ), und ab Vista werden symbolische NT-Verknüpfungen ( de.wikipedia.org/wiki/NTFS_symbolischer_link ). Wie auch immer, während Symlinks helfen können, längere/verschachtelte Pfade freundlicher zu gestalten, kann ich mir nicht vorstellen, wie Symlinks helfen würden, wenn man an die Grenzen der Pfadlänge stößt.

1 Stimmen

Auf meinem Windows 8 PC scheint die Grenze bei etwa 1024 Zeichen zu liegen, also YMMV.

10 Stimmen

Selbst wenn es diese Grenze nicht gäbe, gibt es immer noch viele andere Grenzen, und jede von ihnen könnte irgendwann lästig werden. Der Punkt ist, warum ist diese Grenze so niedrig? Nach der Ära von 8.3 und mit Mega-/Giga-Hardware sollte ein Pfad nun ein dynamisch zugewiesener String mit einer praktisch unbegrenzten Größe sein.

3voto

eliblanco87 Punkte 90

Eine andere Möglichkeit, damit umzugehen, ist die Verwendung von Cygwin, je nachdem, was Sie mit den Dateien machen wollen (d.h. ob die Cygwin-Befehle Ihren Bedürfnissen entsprechen)

So können beispielsweise Dateien kopiert, verschoben oder umbenannt werden, was mit dem Windows Explorer nicht möglich ist. Oder natürlich mit dem Inhalt der Dateien umgehen wie md5sum, grep, gzip, etc.

Auch für Programme, die Sie programmieren, könnten Sie sie mit der Cygwin-DLL verknüpfen und es würde ihnen ermöglichen, lange Pfade zu verwenden (ich habe dies jedoch nicht getestet)

1 Stimmen

Wie wird die Grenze umgangen? Hängt es nicht vom zugrunde liegenden Dateisystem ab (keine rhetorische Frage)? Haben Sie es getestet? Haben Sie eine Referenz, die Sie Ihrer Antwort hinzufügen können? (Aber ohne "Bearbeiten:", "Aktualisieren:" oder ähnlich - die Antwort sollte so aussehen, als wäre sie heute geschrieben worden).

0 Stimmen

Die Windows-Befehlszeile unterstützt 32.767 Pfadlängen. Das Problem besteht bei älteren Anwendungen, die die ältere WIN32-API verwenden, die nur eine fest kodierte, einkompilierte Grenze von 260 Zeichen unterstützt. Die Windows Explorer UI-Anwendung ist das Problem. Sie verwendet immer noch die alte WIN32-API und unterstützt nicht das Überschreiben des Pfads, um einen UNC-Pfad zu verwenden. Die Benutzeroberfläche nimmt zwar einen UNC-Pfad an, aber nachdem Sie die Eingabetaste gedrückt haben, wird der Pfad wieder geändert und schlägt dann bei langen Pfaden fehl (selbst nach der Umstellung auf kurze Namen, falls aktiviert). Ich habe es versucht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X