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!


Top-Artikel in diesem Bereich

Preview Problem gelöst:cmd, BATch Umlaute Windows robocopy chcp 1252

Problem gelöst:cmd, BATch Umlaute Windows robocopy chcp 1252

geändert: 04.04.2022 von Bernhard (Erstveröffentlichung: 27.09.2014)

Probleme mit Umlauten in Batch (cmd) Dateien liegen an der Verwendung unterschiedlicher Zeichensätze. So klappt beispielsweise das Kopieren eines Ordners mit Umlauten nicht, da das Batch-Skript diese nicht richtig interpretiert. Wer ein YVideo bevorzugt, kann sich dazu mein YouTube-Video ansehen. ... weiterlesen

Preview Update oder Treiber deinstallieren cmd: DISM

Update oder Treiber deinstallieren cmd: DISM

geändert: 21.03.2016 von Bernhard (Erstveröffentlichung: 13.10.2015)

Mit dem Commandline Befehl "dism" können in Windows oder in einem Installationsimage sowohl offline, als auch online Einstellungen geändert, Softwarepakete verwaltet und Treiber hinzugefügt oder entfernt werden. DISM ist Bestandteil von Windows 7, 8 und Windows 10. DISM basiert auf der Eingabeaufforderung und funktioniert unabhängig von Windows Powershell und dotnet Framework. Zudem ist DISM in der Recoverykonsole der Windows SetupDVD enthalten. DISM ist a... ... weiterlesen

Preview Localsystem: lokales Systemkonto verwenden - mehr Rechte

Localsystem: lokales Systemkonto verwenden - mehr Rechte

geändert: 15.01.2016 von Bernhard (Erstveröffentlichung: 27.10.2015)

Aus Anwendersicht gibt es keinen vernünftigen Grund etwas als "SYSTEM" zu starten. Wenn der lokale Administrator aber zu wenig Rechte hat, kann "SYSTEM" den Zugriff dennoch gewähren. Das SYSTEM Konto (Lokales Systemkonto oder local System) hat uneingeschränkte Rechte auf dem Computer.  ... weiterlesen


Fragen / Kommentare


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