Drei Methoden zum Implementieren des Dateikopierens in Delphi
1. API-Funktion aufrufen
PROzedur CopyFile(FromFileName,ToFileName:string);
var
f1,f2:Datei;
Beginnen
AssignFile(f1,FromFileName); file:// gibt den Namen der Quelldatei an
AssignFile(f2,ToFileName); file:// gibt den Namen der Zieldatei an
Zurücksetzen(f1);
Versuchen
Umschreiben(f2);
Versuchen
Wenn Lzcopy(TfileRec(f1).handle,TfileRec(f2).Handle)<0
Dann
Erhöhe EinoutError.creat('Fehler beim Kopieren der Datei')
Endlich
CloseFile(f2); file://Close f2
Ende;
Endlich
Bis length(sLine)<=0;
Ende;
Ende;
2.Dateistream
Prozedurkopiedatei;
var f1,f2: tfilestream;
beginnen
f1:=Tfilestream.Create(sourcefilename,fmopenread);
versuchen
f2:=Tfilestream.Create(targetfilename,fmopenwrite oder fmcreate);
versuchen
f2.CopyFrom(f1,f1.size);
Endlich
f2.Frei;
Ende;
Endlich
f1.Frei;
Ende;
Ende;
3. Implementierung unter Verwendung von Speicherblöcken zum Lesen und Schreiben von Puffern
Erstellen Sie FileCopy(const Fromfile,Tofile:string);
Var
F1,F2:Datei;
NumRead,Numscribed:Word;
Buf: Array [1..2048] von char;
Beginnen
AssignFile(F1,Fromfile);
Zurücksetzen(F1,1);
AssignFile(F2,Tofile);
Umschreiben(F2,1);
Wiederholen
BlockRead(F1,buf,sizeof(buf),NumRead);
BlockWrite(F2,buf,Numread,NumWritten);
Bis (NumRead=0) oder (NumWritten<>NumRead);
CloseFile(F1);
CloseFile(F2);
Ende;