Einfach überall "\\?\" vorklatschen funktioniert aber nicht. Der Präfix entfernt zwar das Längenlimit von 260 Charakter, leider aber auch das Postprocessing von Pfaden.
Was genau meinst du denn mit
Postprocessing von Pfaden? Ich kenne leider nur das Expandieren auf Ebene des Object Managers. Und das funktioniert schon seit NT 3.51 tadellos mit langen Pfadnamen, denn unterhalb des
Win32-Subsystems ist das die Normalität. Abgesehen davon hat man auch auf
Win32-Ebene die Option \??\ als Präfix zu benutzen um bestimmte Logiken im Betriebssystem zu umgehen.
Mit entsprechenden Windowsapi-Funktionen kann man einen Pfad zuvor normalisieren.
Beispiel? Was genau meinst du hier? Umwandlung von relativen in absolute Pfade? Also im Grunde
GetFullPathName und die nativen Freunde davon, welche in dem oben verlinkten Artikel erwähnt werden?
Bei uns habe ich damals extra einen Datentyp eingefügt, der dies Implizit macht.
Und genauso macht man das auch
, es sei denn es ist anderweitig in der Logik verankert.
Generell empfiehlt es sich erst dann in den Longpath zu wandeln, wenn man auch wirklich auf Dateien zugreifen muss.
Warum? Was ist denn schädlich daran generell mit langen Pfadnamen zu arbeiten? Denn wenn sich eine Empfehlung ergibt, scheint es ja einen Nachteil bei der Nutzung langer Pfadnamen zu geben. Mit ist kein Nachteil bekannt, bin daher auf die Antwort schon gespannt.
Ach ja, noch als Nachtrag zu meinem vorherigen Beitrag: shlwapi ist beispielsweise ganz schlimm in Sachen hartkodierte Beschränkung auf MAX_PATH, ebenso weitere Teile der "Shell", während bspw. WIN32_FIND_DATA wieder harmlos ist, weil es hier um ein einziges Segment des Pfads geht und eben nicht um den gesamten Pfad. Das soll an Beispielen erst einmal reichen.