Zitat:
Delphi-Quellcode:
Try
_CheckResult(CopyFile(PChar (filename), PChar (destination ), False));
Except
On E:EAccessDeniedException Do
CopyDirectory (filename, destination);
end;
Wenn z.B. das Kopieren einer Datei Aufgrund verbotener Rechte schief geht,
dann kann/wird CopyDirectory auch schiefgehn ... und es wird keine Fehlermeldung ausgelöst.
PS: das Try-Except ist ja wohl nur da, um die im "Fehlerfall" absichtlich ausgelöste
Exception abzufangen und das ist eine Mißhandlung dieser "Ausnahmebehandlung".
Da du die Rückgabewerte eh nicht genau auswärtest, hätte dieses vollkommen ausgereicht.
Delphi-Quellcode:
procedure TFileOperation.CopyFileOrDirectory (filename, destination : String);
begin
CopyFile(PChar (filename), PChar (destination), False))
or CopyDirectory(filename, destination);
end;