Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pablo AG

Copia Arquivos e diretorios

Recommended Posts

Bom dia amigos,

 

Estou com um problema em uma rotina de backup que estou criando e gostaria de uma ajuda.

Não estou conseguindo copiar nada !

 

O que fiz foi :

 

var origem, destino : string;origen := Modulo.cdsBackupDESTINO.Text;destino := Modulo.cdsBackupORIGEM.Text;CopyFile(PChar(origen),PChar(destino), True);

Agradeço a ajuda,

Pablo Aguillar

Compartilhar este post


Link para o post
Compartilhar em outros sites

essa função eu tenho aqui numas apostilas, não tive tempo de testa nem nada, mas funciona...

[]'s

 

Function CopiaArquivo(scrname,destname:string):byte;var  source,destination:file;  buffer:array[1..1024] of byte;  readcnt,writecnt:word;  pname,dname,fname,ename:String;  { USO: R:=COPIAARQUIVO('C:\diretorio\FILE.EXT','C:\diretorio\FILE.EXT'); Devolve 0=Ok, 1=Erro no Origem, 2=Erro no Destino, 3=Disco Cheio }begin  AssignFile(source,scrname);  Try  Reset(source,1);  Except  CopiaArquivo:=1;  Exit;end;If destname[length(destname)]='\' then  begin  pname:=scrname;  destname:=destname+separa(scrname,'\',Ocorre(scrname,'\')+1);  end;  AssignFile(destination,destname);  Try  Rewrite(destination,1);  Except  CopiaArquivo:=2;  Exit;end;Repeat  BlockRead(source,buffer,sizeof(buffer),readcnt);  Try  BlockWrite(destination,buffer,readcnt,writecnt);  Except  CopiaArquivo:=3; {Disco Cheio?}  Exit;end;until (readcnt=0) or (writecnt<>readcnt);CloseFile(destination);CloseFile(source);CopiaArquivo:=0;end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

LennOn,Essa função copia *.* tipo, todos arquivos e subdiretórios de um diretório origem para um destino ?Att,Pablo Aguillar

PS: antes do begin tem a forma de usá-la comentadoessa não, copia tal arquivo de tal pasta para tal arquivo de tal pasta, eu tenho uma aqui q copia usando coringa (ex: *.exe / *.* / *.txt)eh isso q você precisa?

Compartilhar este post


Link para o post
Compartilhar em outros sites

procedure TForm1.Button2Click(Sender: TObject);var  SR: TSearchRec;  I: integer;  Origem, Destino: string;begin  I := FindFirst('c:\Origem\*.*', faAnyFile, SR);  while I = 0 do  begin	if (SR.Attr and faDirectory) <> faDirectory then	begin	  Origem := 'c:\Origem\' + SR.Name;	  Destino := 'c:\Destino\' + SR.Name;	  if not CopyFile(PChar(Origem), PChar(Destino), true) then		ShowMessage('Erro ao copiar ' + Origem + ' para ' + Destino);	end;  I := FindNext(SR);  end;end;

agora foi?

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esta caindo direto no erro.

 

Olha o que estou fazendo.

Armazeno no bco Origem e Destino.

 

Origem = c:\Arquivos

Destino = c:\backup

 

procedure CopiaArquivoDiretorio();var  SR: TSearchRec;  I: integer;  Origem, Destino: string;begin  I := FindFirst(Origem + '\*.*', faAnyFile, SR);  while I = 0 do  begin	if (SR.Attr and faDirectory) <> faDirectory then	begin	  Origem := Modulo.cdsBackupORIGEM.Text + SR.Name;	  Destino := Modulo.cdsBackupDESTINO.Text + SR.Name;	  if not CopyFile(PChar(Origem), PChar(Destino), true) then		ShowMessage('ERRO AO COPIAR ' + Origem + ' PARA ' + Destino);	end;  I := FindNext(SR);  end;end;

depois chamo a função assim.

 

CopiaArquivoDiretorio();

Compartilhar este post


Link para o post
Compartilhar em outros sites

ixi..bom, como eu disse eu soh peguei de uma apostila que eu tenho aqui (ctrl+c / ctrl+v) ...da uma debugada aí q infelizmente nao vou pode ajuda-lo[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.