(1)
Artikel
bewerten
(93% positiv)
(13)

lange Ordner und Dateinamen MAX_PATH

Zielpfad ist zu lang

Inhalt dieses Artikels:

    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

    letzte Änderung dieses Artikels: 23.03.2015 16:11



    Feedback: