Zitat von
killerkarl:
FilePathA := 'run.dll'; // Pfad der zu kopierenden Datei
FilePathB := 'c:\winz.exe'; // Zielpfad
mem := TMemoryStream.Create;
try
mem.LoadFromFile(filePathA);
mem.SaveToFile(FilepathB);
finally
mem.Free;
end;
Die Datei in einen MemoryStream zu laden ist zwar einfach aber auch sehr zeitaufwändig, weil die ganze datei in den Speicher geschrieben wird und dann auf die Festplatte. Bei ~700 MB heisst des du im normalfall den pysikalischen
RAM schon vergessen kannst und windows auf die datei auf die festplatte auslagert. QuellDatei->Speicher(pagefile)->ZielDatei.
Warum so einen Umweg?
Warum nicht einfach QuellDatei->ZielDatei?
QuellCode:
Code:
procedure DateiKopieren(Quelle, Ziel : String);
var
QuellFile, ZielFile : TFileStream;
begin
QuellFile := TFileStream.Create(Quelle, fmOpenReadWrite or fmShareDenyWrite);
ZielFile := TFileStream.Create(Ziel, fmCreate or fmShareDenyNone);
try
ZielFile.CopyFrom(QuellFile, 0);
finally
QuellFile.Free;
ZielFile.Free
end;
end;