lange Ordner und Dateinamen MAX_PATH

 

Aufgrund von Windows API Limits, können in Windows keine Ordner mit mehr als 260 Zeichen (=MAX_PATH) erzeugt werden, obwohl NTFS 32,767 Zeichen kann.

Außerdem darf die Ordnertiefe nicht mehr als 128 Ordner sein.

Windows hindert uns so lange Dateien anzulegen: 

Bei meinem Test konnte ich einfach keinen längeren Dateinamen eingeben.

Will ich einen langen Ordner, in den ohnehin bereits langen Ordner, verschieben, kommt folgender Fehler:

Zielpfad ist zu lang

Die Dateinamen wären zu lang für den Zielordner. Kürzen Sie die Dateinamen und wiederholen Sie den Vorgang, oder verwenden Sie einen anderen Ort, der einen kürzeren Pfad hat.

 

Sehr interessant wird es aber, wenn ich den langen Ordner freigebe, denn dann zählt die Länge der Freigabe:

Unser Ordner: "C:\temp\ein langer Ordnername um das Problem mit den Dateinamen bzw. Ordnern und deren Länge nachzustellen\ein langer Ordnername um das Problem mit den Dateinamen bzw. Ordnern und deren Länge nachzustellen"

wenn ich einen Ordner innerhalb des Pfades freigebe, also den Ordner:

"C:\temp\ein langer Ordnername um das Problem mit den Dateinamen bzw. Ordnern und deren Länge nachzustellen"

als Freigabename: "lange"

Dann kann ich den Ordner über einen share aufrufen: \\localhost\lange

 

 

und dort dann einen längeren Dateinamen anlegen:

 

und sogar nochmal den langen Ordnernamen rein kopieren

unser echter Pfad heißt jetzt:

"C:\temp\ein langer Ordnername um das Problem mit den Dateinamen bzw. Ordnern und deren Länge nachzustellen\ein langer Ordnername um das Problem mit den Dateinamen bzw. Ordnern und deren Länge nachzustellen\ein langer Ordnername um das Problem mit den Dateinamen bzw. Ordnern und deren Länge nachzustellen - Kopie"

also wesentlich mehr als die 260 Zeichen

Windows 7 kennt das Problem und macht beim Aufruf daraus automatisch folgendes: C:\temp\EINLAN~1.ORD\EINLAN~1.ORD\ein langer Ordnername um das Problem mit den Dateinamen bzw. Ordnern und deren Länge nachzustellen - Kopie

es verwendet also die 8.3 Dateinamen um damit umgehen zu können

 

um diese Limitation zu umgehen gibt es außerdem folgende Möglichkeiten:

\\?\ Prefix

Aufruf über: "\\?\" prefix

Wenn du den Pfad am Server mit: \\?\d:\langername anstelle von d:\langername aufrufst. bzw. den Fileshare mit \\?\UNC\server\share anstelle von \\server\share kann der Pfad im Explorer aufgerufen werden

 

Quelle: http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx 

8.3 Namen verwenden

diese können z.B. mit dir /x angezeigt werden

einen Share bzw ein Laufwerk innerhalb der Ordnerstruktur

wie in unserem obigen Beispiel, den langen Ordnernamen mit einem kürzeren Namen freigeben 

also c:\langerordner\2terlangerordner\3terlangerordner

z.B. den Ordner: 3terlangerordner freigeben (ev. mit einem kürzeren Namen) und diesen dann mit:

\\Servername\kurzername3 ansprechen

Quelle: http://support.microsoft.com/kb/320081/en-us

Windows 10 - Einstellung

Seit Windows 10 kann das Limit per Einstellung in der Registry oder GPO aufgehoben werden, allerdings nicht für den Windows Explorer:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem REG_DWORD LongPathsEnabled 1

https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file#enable-long-paths-in-windows-10-version-1607-and-later

positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE für deine Bewertung!

Beitrag erstellt von Bernhard | Aktualisiert: 28.08.2020 | |🔔 | Kommentare:0

Fragen / Kommentare


Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu Mehr Details