Erstmal MAX_PATH mit 260 bedeuted eigentlich "Pfad" maximal 256 (1 Byte Längenangabe) zuzüglich dem Laufwerk ("C:\" also 3) und inkl. einer #0.
Lokal beim "\\?\server\freigabe" die 256 plus diese Länge,
aber wenn die Freigabe aufdem Server in einem Unterverzeichnis, dann womöglich auch noch abzüglich diesem Teil vom Zielpfad.
Bei
UNC-Pfaden ist "oftmals" dieses Limmit schon deaktivert/umgangen
und seit 'ner kurzen Weile kann man für viele APIs dieses MAX_PATH-Limit komplett deaktivieren, ABER
* dies Funktion muß einmal im Windows
*
und auch nochmal im Programm
aktiviert werden.
https://docs.microsoft.com/en-us/win...ath-limitation
ABER wenn jemand mit
festen Speichergrößen arbeitet, dann hilft da absolut nichts ... wenn nicht mehr rein passt, dann passt nicht mehr rein.
Delphi-Quellcode:
type
_WIN32_FIND_DATAW = record // TWin32FindDataW
..
cFileName: array[0..MAX_PATH - 1] of WideChar;
end;
var
FDO : TWin32FindDataW;
Du brauchst also eine Lösung ohne TWin32FindData.
Ich würde etwas mit
IDropSource empfehlen.
Wir/Ich hatte keine Lust alles selbst zu machen, drum verwenden wir aktuell die Drag&Drop-Componenten von Melander.
Oder schau mal hier
https://edn.embarcadero.com/article/26545