Hallo,
bei BlockRead muss die Dateigröße immer ein Vielfaches der Blockgröße sein - deshalb ist BlockSize=1 irgendwie optimal. Mit Streams reduziert sich der Code eigentlich auf die Methode CopyFrom():
Delphi-Quellcode:
procedure FileCopy(fnSource, fnTarget: TFilename);
var
fsSource, fsTarget: TStream;
begin
fsSource := TFileStream.Create(fnSource, fmOpenRead);
try
fsTarget := TFileStream.Create(fnTarget, fmCreate);
try
fsTarget.CopyFrom(fsSource, 0);
finally
fsTarget.Free;
end;
finally
fsSource.Free;
end;
end;
Getippt und nicht getestet.
Grüße vom marabu