useruw
Goto Top

Längenbeschänkung bei Pfaden und Dateinamen

Man kann die Längenbeschränkung von 260 Zeichen aufheben in Windows 10 und Windows Server ab 2016 (soweit ich gelesen habe).

Frage 1: Ist das sicher (in dem Sinne, dass einem Windows nichts zerschießt - dass es Anwendungen gibt, die mit langen Namen nicht umgehen können, ist mir bewusst)?

Frage 2: Wenn ein Windows 10 Client Netzwerklaufwerke nutzt: Muss die Längenbeschränkung dann auch auf dem Server aufgehoben werden? Können einem sonst Dateien zerschossen werden? Was passiert, wenn es sich noch um einen älteren Windows Server handelt (2012 oder ggf. sogar noch älter)?

Danke, Ulrich

Content-ID: 603910

Url: https://administrator.de/contentid/603910

Ausgedruckt am: 24.11.2024 um 02:11 Uhr

maretz
maretz 12.09.2020 um 07:59:26 Uhr
Goto Top
Moin,

macht das Sinn? NEIN. Was ist denn wenn du zwar bei deinem Win10 das dann machst - und deine Anwendung plötzlich in Probleme läuft?

Zur 2ten Frage: Du kannst ja die Freigaben so wählen das eben die Beschränkung erhalten bleibt...

Ich würde aber eben auch immer überlegen ob es denn Sinn macht das zu haben. Ich stelle mir grad nen normalen Arbeitsplatz vor und der Kollege/die Kollegin x versucht ne Datei zu öffnen während oben der Pfad schon nur noch halb angezeigt werden kann weil die Adressleiste schon zu kurz ist...
145916
145916 12.09.2020 aktualisiert um 09:02:31 Uhr
Goto Top
Zitat von @UserUW:
Frage 1: Ist das sicher (in dem Sinne, dass einem Windows nichts zerschießt - dass es Anwendungen gibt, die mit langen Namen nicht umgehen können, ist mir bewusst)?
Es ist nur so sicher wie auch alle Anwendungen die auf deine Pfade zugreifen wollen dies unterstützen. D.h. diese Anwendungen müssen mindestens ohne die OS Einstellung die eingebauten Unicode Win32-Funktionen benutzen ( die ja schon länger Pfade bis 32767 Zeichen supporten), tun sie das nicht und es ist ein OS in dem man die MAX_PATH Variable nicht anpassen kann < Windows 10 (1607), dann werden diese Programme Probleme mit dem Pfad bekommen.

Frage 2: Wenn ein Windows 10 Client Netzwerklaufwerke nutzt: Muss die Längenbeschränkung dann auch auf dem Server aufgehoben werden?
Nein, wie oben erwähnt unterstützt NTFS schon länger Pfade > 32767 Zeichen wenn man die entsprechenden Win32 Funktionen des OS nutzt.
Können einem sonst Dateien zerschossen werden?
Wenn ein Programm den langen Pfad nicht ansprechen kann wird es erst gar nicht an die Datei herankommen, also eher unwahrscheinlich, außer der Programmierer hat derben Mist gebaut.
Was passiert, wenn es sich noch um einen älteren Windows Server handelt (2012 oder ggf. sogar noch älter)?
Auch die unterstützen schon länger lange Pfade, aber wie gesagt nur wenn man die speziellen Unicode-Funktionen des OS nutzt und der Explorer ist da eben eine rühmliche Ausnahme der damit überhaupt nicht klar kommt.

Die Einstellung für neuere OS mit dem Aufheben des Limits macht eben einige der am meisten verwendeten Win32 APIs zum Auflisten/Suchen/Ansprechen von Pfaden und Dateien kompatibel mit langen Pfaden, NTFS selber unterstützt diese aber schon viel länger. Es sind also bei älteren OS hauptsächlich Anwendungen betroffen die eben nicht die Unicode-Funktionen nutzen.

Etwas Lektüre
https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file#maxi ...
UserUW
UserUW 12.09.2020 um 17:17:54 Uhr
Goto Top
Danke für die detaillierte Beschreibung + Link.

Ist folgende Zusammenfassung also richtig:
1. NTFS unterstützt schon immer Pfadlängen > 260 Zeichen *
2. Die MAX_PATH Variable hat keinen Einfluss auf das Filesystem, sondern verhindert lediglich die praktische Erzeugung längerer Pfade.
3. Damit Programme längere Pfade erzeugen und ansprechen können, müssen diese die entsprechenden Win32-Funktionen benutzen.

Damit ist auch meine eigentliche Frage beantwortet: Die Gefahr, dass Dateien wegen eines falschen Umgangs mit der MAX_PATH Variable zerschossen werden, besteht prinzipiell nicht. Allenfalls können Dateien wegen zu langer Pfad-/Dateinamen durch einzelne Programme nicht bearbeitet werden.

*) Gem. https://de.wikipedia.org/wiki/NTFS ab NTFS 1.0 (= Windows NT 3.1, das war 1993, die erste vermarktete NT-Version).
145916
Lösung 145916 12.09.2020 aktualisiert um 17:46:02 Uhr
Goto Top
Zitat von @UserUW:
Ist folgende Zusammenfassung also richtig:
1. NTFS unterstützt schon immer Pfadlängen > 260 Zeichen *
So weit ich weis, ja. Du musst aber Pfade und Dateinamen unterscheiden, das größere Pfad-Limit von 32767 gilt nur für den Pfad, für den Dateinamen gilt weiterhin das Standard-Limit 255
2. Die MAX_PATH Variable hat keinen Einfluss auf das Filesystem, sondern verhindert lediglich die praktische Erzeugung längerer Pfade.
Ja.
3. Damit Programme längere Pfade erzeugen und ansprechen können, müssen diese die entsprechenden Win32-Funktionen benutzen.
Ja.
Damit ist auch meine eigentliche Frage beantwortet: Die Gefahr, dass Dateien wegen eines falschen Umgangs mit der MAX_PATH Variable zerschossen werden, besteht prinzipiell nicht. Allenfalls können Dateien wegen zu langer Pfad-/Dateinamen durch einzelne Programme nicht bearbeitet werden.
Jepp.
GrueneSosseMitSpeck
GrueneSosseMitSpeck 13.09.2020 um 23:56:43 Uhr
Goto Top
Windows selbst kann das.

Es kommt letztenendlich drauf an, daß die in Programmen verwendeten APIs und Frameworks sowas unterstützen - oder Pfadparsing beherrschen.

Man glaubt ja garnicht wievlel Mist da noch auf dem Markt unterwegs ist... und in den Zeiten, wo ein Ordername oder eine Datei tatsächlich nur 260 Zeichen lang sein durfte, hat man als String übergebene Pfade durchiteriert und nicht am Stück übergebne, diese Programmierkunst ist dann wirklich zukunfstauglich.
SachsenHessi
SachsenHessi 14.09.2020 um 10:49:54 Uhr
Goto Top
Hallo,

es gilt wie immer: "im Prinzip JA".
Es kann Dir aber passieren, das es Probleme, bei extrem langen Dateinamen, beim Löschen/Kopieren gibt (auch mit Bordmitteln DEL/REN/COPY etc.).
Kommt darauf an wie Eure Server konfiguriert sind.
(Sollte es zu Problemen kommen hilft in dem Falle ROBOCOPY, der kann damit umgehen, auch wenn der Server zickt.)

Gruß
SH