Três métodos para implementar cópia de arquivo em Delphi
1. Chamar função API
PRocedure CopyFile(FromFileName,ToFileName:string);
var
f1,f2:arquivo;
Começar
AssignFile(f1,FromFileName); file://especifica o nome do arquivo de origem
AssignFile(f2,ToFileName); file://especifica o nome do arquivo de destino
Redefinir(f1);
Tentar
Reescrever(f2);
Tentar
Se Lzcopy(TfileRec(f1).handle,TfileRec(f2).Handle)<0
Então
Raise EinoutError.creat('Erro de cópia de arquivo')
Finalmente
FecharArquivo(f2); arquivo://Fechar f2
Fim;
Finalmente
Até comprimento(sLine)<=0;
Fim;
Fim;
2. Fluxo de arquivo
arquivo de cópia do procedimento;
var f1,f2:tfilestream;
começar
f1:=Tfilestream.Create(nome do arquivo de origem,fmopenread);
tentar
f2:=Tfilestream.Create(targetfilename,fmopenwrite ou fmcreate);
tentar
f2.CopyFrom(f1,f1.tamanho);
finalmente
f2.Grátis;
fim;
finalmente
f1.Grátis;
fim;
fim;
3. Implementação usando blocos de memória para ler e escrever buffers
Procedimento FileCopy(const Fromfile,Tofile:string);
Var
F1,F2:arquivo;
NumLeitura,Numescrito:Palavra;
Buf: array [1..2048] de char;
Começar
AssignFile(F1,Fromfile);
Redefinir(F1,1);
AssignFile(F2,Tofile);
Reescrever(F2,1);
Repita
BlockRead(F1,buf,tamanho(buf),NumRead);
BlockWrite(F2,buf,Numread,NumWritten);
Até (NumRead=0) ou (NumWritten<>NumRead);
FecharArquivo(F1);
FecharArquivo(F2);
Fim;