2011-01-12 2 views
6

Mögliche Duplizieren:
Why does the 260 character path length limit exist in Windows?C#: Gibt es eine Möglichkeit, die Grenze von 260 Zeichen für einen vollständig qualifizierten Pfad zu umgehen?

Ich versuche, einen Weg, um herauszufinden, um diese zu erhalten gefürchteten 260 Zeichen voll qualifizierte Grenze Pfad und zugleich ich frage mich, warum die Hölle Gibt es eine Pfadbegrenzung für den Anfang? Ich weiß, dass manche Leute 260 "viel" zu sein scheinen, aber es ist wirklich nicht, seit ich auf dieses Problem gestoßen bin.

Grundsätzlich:
Warum muss es eine Zeichengrenze geben?
Wie kommt man damit klar?

+0

Es ist ein OS-Limit. –

+0

Von Twitter gehört? Es hat eine Grenze von 140 Zeichen. Das ist ein Grund für das wachsende Interesse an URL-Verkürzungen wie Bitly. – DOK

Antwort

11

Verwenden Sie das UNC-Präfix \\?\, um den Pfad "DOS-Modus" zu verlassen. Die maximale Länge für UNC-Pfade beträgt 32k Zeichen.

Mehr Infos hier: http://msdn.microsoft.com/en-us/library/aa365247.aspx

+1

"\\? \" Macht es nicht zu einem UNC, \\? \ Unterstützt UNC. –

+0

Jede Komponente (\ ... \) hat ein 'lpMaximumComponentLength'-Wertlimit (von' GetVolumeInformation'-Funktion). – n00dles

+0

Gibt es eine Möglichkeit, dieses Komponentenlimit zu umgehen, damit jede Komponente länger als das angegebene Limit ist, z. B. die standardmäßigen 255 Zeichen? – Swtsvn

1

Nun, erstens, das hat nichts mit C# insbesondere zu tun, und alles, was mit dem Windows-API zu tun, wobei diese Grenze befindet. :)

Werfen Sie einen Blick auf this question und seine Antworten, die Sie zu MSDN führen wird: Naming Files, Paths, and Namespaces

Unicode-Dateipfade (in den Antworten auf die Frage beschrieben, und der Artikel MSDN) als Lösung sein kann, mit einige Vorbehalte.

8

Vom MSDN:

Die Windows-API hat viele Funktionen, die auch eine erweiterte Länge Pfad für eine maximale Gesamtpfadlänge von 32.767 Zeichen erlauben Unicode-Versionen müssen. Dieser Pfadtyp besteht aus Komponenten, die durch umgekehrte Schrägstriche voneinander getrennt sind, jeweils bis zu dem Wert, der im Parameter lpMaximumComponentLength der GetVolumeInformation-Funktion zurückgegeben wird (dieser Wert besteht üblicherweise aus 255 Zeichen). Um einen Pfad mit erweiterter Länge anzugeben, verwenden Sie das Präfix "\\?\". Zum Beispiel "\\?\D:\very long path".

Verwandte Themen