Die
Doku zu TFile.Replace(..) spricht:
Zitat:
Replace löst eine
Exception aus, wenn die Quell- oder Zieldatei nicht vorhanden ist, die Pfade ungültig sind oder der Benutzer
nicht über ausreichende Rechte zur Durchführung des Ersetzungsvorgangs verfügt.
Ich schaue vorsichtshalber doch einmal in die Implementierung in
System.IoUtils
und sehe das hier:
Delphi-Quellcode:
begin
[...]
SetLastError(ERROR_SUCCESS);
ReplaceFile(PChar(DestinationFileName), PChar(SourceFileName),
PChar(DestinationBackupFileName), Flags, nil, nil);
end;
Die
Windows-Doku zu ReplaceFile(..) spricht:
Zitat:
If the function fails, the return value is zero.
Übersehe ich etwas, oder verspricht die Doku mal wieder etwas das nicht gehalten wird? Ich habe mir testweise einmal die Berechtigung zum Schreiben einer Datei verweigert,
TFile.Replace(..)
ausgeführt und keine
Exception wurde geworfen. Das Ersetzen schlug natürlich fehl.