Einzelnen Beitrag anzeigen

Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#10

AW: Extrem langen Pfad kürzen, Result leer?

  Alt 2. Jan 2017, 20:20
Also direkt über die Win API kann man bis Windows 8.1 nur Pfade mit der Länge von MAX_PATH kopieren. Es gab aber die bereits erwähnte Alternative mit \\?\ um Pfade zu kopieren die länger sind als MAX_PATH.
... was auch über die WinAPI erfolgt - insofern widerspricht der zweite Satz dem ersten .

Probiert habe ich es selbst auch nie, aber da ich weiß, dass Total Commander mit Pfaden länger 256 Zeichen umgehen kann (geht IIRC bis 1024) und der natürlich mit der WinAPI arbeitet, kann ich mit Sicherheit sagen, dass es funktioniert. Nur mal ein Beispiel: MSDN-Library durchsuchenCopyFileEx:
Zitat:
In the ANSI version of this function, the name is limited to MAX_PATH characters. To extend this limit to 32,767 wide characters, call the Unicode version of the function and prepend "\\?\" to the path.
Es muss also die Unicode-Variante der Funktion gerufen werden, der Prefix muss vorhanden sein, und natürlich darf man den String nicht auf MAX_PATH kürzen. Und wie ich schon sagte können möglicherweise nicht alle API-Funktionen mit den überlangen Pfaden umgehen; LoadImage, LoadIcon fallen mir da spontan ein.

Grüße
Dalai

Geändert von Dalai ( 2. Jan 2017 um 20:24 Uhr)
  Mit Zitat antworten Zitat