Ich habe mal getestet, weil ich erst mal verstehen will, wie es die ganze Zeit so ist.
Dateitest:
Maximal Dateinamenlänge im Hauptverzeichnis C (255 Zeichen)
+ C:\ (3 Zeichen) + NULL-Zeichen (1 Zeichen)
= 259 Zeichen
Warum nicht 260 (MAX_PATH) ?
Maximal Dateinamenlänge im Verzeichnis C:\Test (251 Zeichen)
+ C:\Test\ (8 Zeichen) + NULL-Zeichen (1 Zeichen)
= 260 Zeichen (wäre MAX_PATH)
Maximal Dateinamenlänge im Verzeichnis C:\Test\Test (246 Zeichen)
+ C:\Test\Test\ (13 Zeichen) + NULL-Zeichen (1 Zeichen)
= 260 Zeichen (wäre MAX_PATH)
Ordnertest:
Maximale Ordnerlänge im Hauptverzeichnis C (244 Zeichen)
+ C:\ (3 Zeichen) + NULL-Zeichen (1 Zeichen)
+ 12 Zeichen (8+3 Dateiname + Punkt) für einen möglichen Dateinamen im Ordner
= 260 Zeichen (wäre MAX_PATH)
Maximale Ordnerlänge im Verzeichnis C:\Test (239 Zeichen)
+ C:\Test\ (8 Zeichen) + NULL-Zeichen (1 Zeichen)
+ 12 Zeichen (8+3 Dateiname + Punkt) für einen möglichen Dateinamen im Ordner
= 260 Zeichen (wäre MAX_PATH)
Maximale Ordnerlänge im Hauptverzeichnis C:\Test\Test (234 Zeichen)
+ C:\Test\Test\ (13 Zeichen) + NULL-Zeichen (1 Zeichen)
+ 12 Zeichen (8+3 Dateiname + Punkt) für einen möglichen Dateinamen im Ordner
= 260 Zeichen (wäre MAX_PATH)
Also der erste Test im Hauptverzeichnis ergibt nicht 260. Was ist hier falsch? Weiterhin überlege ich über das NULL-Zeichen nach. Die Ordnerlänge müsste doch jeweils um 1 Zeichen weniger sein, weil ein möglicher 8+3 Dateiname (in früheren Zeiten die maximale Länge) auch ein NULL-Zeichen haben muss. Also nicht 12, sondern 13 Zeichen. Zumindest für das
API-Interne Zeugs.