Ich hab das Problem mit den Pfadlängen doch lösen können und zwar mithilfe der
API Funktion copyfileW() und dem prefix '\\?\'.
Hiermit ist es nähmlich möglich wesentlich längere Pfade zu nutzen.
Delphi-Quellcode:
function TForm1.CopyFileEx( ASource:String ; ADest: string; ARenameCheck: boolean = false): boolean;
const
PathPrefix = '\\?\';
var
error : Cardinal;
pQuelle : WideString;
pZiel: Widestring;
wideChars1 : array[0..399] of WideChar;
wideChars2 : array[0..399] of WideChar;
begin
// String muss mit #0#0 terminiert werden, um das Listenende zu setzen
pQuelle := PathPrefix +ASource + #0#0;
pZiel := PathPrefix +ADest +#0#0;
setLastError(0);
Result:= CopyFileW(PWideChar(pQuelle),PWideChar(pZiel),false);
error := GetLastError;
end;