ich mag Fehlerbehandlungen und Rückgabewerte und unnötige Puffer müssen auch nicht unbedingt sein
PS: 128-2 = 126 Zeichen sollten etwas kurz sein ... wenn, dann sollte der Puffer schon mindestens MAX_PATH+1 sein
Delphi-Quellcode:
Function FileCopy(const Source, Dest: String): Integer;
var
OpStruc: TSHFileOpStruct;
Begin
fillChar( OpStruc, Sizeof(OpStruc), 0 );
With OpStruc DO Begin
Wnd := Form1.Handle; // oder Application.Handle oder Nil
wFunc := FO_COPY;
pFrom := PChar(Source + #0); // da Liste mit #0#0 abgeschlosen wird
pTo := PChar(Dest + #0);
fFlags := FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION;
fAnyOperationsAborted := False;
hNameMappings := Nil;
lpszProgressTitle := Nil;
end;
Result := ShFileOperation( OpStruc );
end;
im Notfall geht's auch so (aber Ersteres sollte schon gehn):
Delphi-Quellcode:
Function FileCopy(Source, Dest: String): Integer;
var
OpStruc: TSHFileOpStruct;
Begin
Source := Source + #0
Dest := Dest + #0;
fillChar( OpStruc, Sizeof(OpStruc), 0 );
With OpStruc DO Begin
Wnd := Form1.Handle; // oder Application.Handle oder Nil
wFunc := FO_COPY;
pFrom := PChar(Source);
pTo := PChar(Dest);
fFlags := FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION;
fAnyOperationsAborted := False;
hNameMappings := Nil;
lpszProgressTitle := Nil;
end;
Result := ShFileOperation( OpStruc );
end;