Was ist der längste Dateipfad, den Windows verarbeiten kann?
Was ist der längste Dateipfad, den Windows verarbeiten kann?
Antworten:
Maximale Pfadlänge (von MSDN)
In der Windows-API (mit einigen Ausnahmen, die in den folgenden Abschnitten erläutert werden) beträgt die maximale Länge für einen Pfad MAX_PATH, der mit 260 Zeichen definiert ist . Ein lokaler Pfad ist in der folgenden Reihenfolge strukturiert: Laufwerkbuchstabe, Doppelpunkt, umgekehrter Schrägstrich, durch umgekehrte Schrägstriche getrennte Komponenten und ein abschließendes Nullzeichen. Beispielsweise ist der maximale Pfad auf Laufwerk D "D: \ <Pfadzeichenfolge mit 256 Zeichen> <NUL>", wobei "<NUL>" das unsichtbare abschließende Nullzeichen für die aktuelle Systemcodepage darstellt. (Die Zeichen <> werden hier aus Gründen der Übersichtlichkeit verwendet und können nicht Teil einer gültigen Pfadzeichenfolge sein.)
XP-Dateipfad - 250 Zeichen
Vista-Dateipfad - 260 Zeichen
Der längste Pfad bei einer Neuinstallation von Windows XP beträgt 152 Zeichen.
Der längste Pfad für eine halbbereinigte Installation von Windows Vista beträgt 195 Zeichen:
In Windows XP sind Dateinamen mit einer Länge von bis zu 255 Zeichen zulässig
Windows Vista ermöglicht noch längere Dateinamen mit bis zu 260 Zeichen.
Die Windows-Konstante MAX_PATH
ist 260, wie andere Antworten besagen. Der längste Pfad ist jedoch 32767.
Sehen Sie hier .
32k ist zwar UNICODE, aber jetzt müssen wir es verwenden, also sollten wir auch eine solche maximale Pfadlänge verwenden.
Sie können auch einen Blick auf meine Antwort in SO werfen, in der einige Details zur maximalen Pfadlänge erläutert werden.
Das "klassische" Limit beträgt 260 Zeichen: drive letter
+ :\
+ 255 characters of filename
+ \
(oder zum Runden) + null terminator
wie in den anderen Antworten angegeben
Die tatsächliche interne Beschränkung liegt jedoch bei 32767 Zeichen, die durch Anhängen \\?\
eines vollständig qualifizierten Pfads erreicht werden können
Die Windows-API verfügt über viele Funktionen, die auch über Unicode-Versionen verfügen, um einen Pfad mit erweiterter Länge für eine maximale Gesamtpfadlänge von 32.767 Zeichen zuzulassen. Dieser Pfadtyp setzt sich aus durch Backslashes getrennten Komponenten zusammen, die jeweils bis zu dem im
lpMaximumComponentLength
Parameter derGetVolumeInformation
Funktion zurückgegebenen Wert (dieser Wert besteht normalerweise aus 255 Zeichen) reichen. Verwenden Sie das"\\?\"
Präfix, um einen Pfad mit erweiterter Länge anzugeben . Zum Beispiel"\\?\D:\very long path"
.
Wenn die vollständig qualifizierten Pfade aus bestimmten Gründen nicht verwendet werden können, können Sie auf tiefere Verzeichnisse zugreifen, indem Sie einen Laufwerksbuchstaben anhängen und subst
/ diskpart
oder eine Junction / einen Symlink erstellen , um den Pfad zu verkürzen
Seit Windows 10 wurde das MAX_PATH
Limit ebenfalls entfernt, jedoch nicht standardmäßig
Ab Windows 10, Version 1607, wurden
MAX_PATH
Einschränkungen für allgemeine Win32-Datei- und -Verzeichnisfunktionen entfernt. Sie müssen sich jedoch für das neue Verhalten anmelden.https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file