Copiar arquivos e pastas

02/09/2004

procedure TfrmPrincipal.copia;
var
Arquivo: TSearchRec;
begin
if FindFirst(´C:\Temp1\Tabelas\*.*´, 0, Arquivo) = 0 then
begin
repeat
CopyFileTo(´C:\Temp1\Tabelas\*.*´,´C:\Temp1\Programas\´+Arquivo.Name);
until FindNext(Arquivo) <> 0;
FindClose(Arquivo);
end;
end;

Este comando só copia arquivos, caso junto com os arquivos tenha um diretório ou vários, só copia o(s) arquivo(s), ignorando a(s) pasta(s). Como copiar tudo, pasta(s) e arquivo(s)?


Paulo

Respostas

02/09/2004

Ipc$

Uses ShellApi;
var sh:SHFILEOPSTRUCT;
begin
  sh.Wnd   := Handle;
  sh.wFunc := FO_COPY;
  sh.pFrom := PChar(´´C:\Temp1\Tabelas´+#0);
  sh.pTo   := PChar(´´C:\Temp1\Programas´);
  sh.fFlags := FOF_AllowUndo;
  SHFileOperation(sh);
end;



Responder Citar

02/09/2004

Ipc$

Oops
sh.pFrom := PChar(´C:\Temp1\Tabelas´+#0); 
sh.pTo     := PChar(´C:\Temp1\Programas´); 



Responder Citar

06/09/2004

Paulo

IPC$, pq não está copiando? Já copiou, mas quando tinha arquivos. Agora somente pasta, ele não esta copiando. Obs: Quando eu falo só arquivos, é que dentro do diretório ´C:\Trabalho\AtualizaTECcom\´ havia arquivos e pastas. Eu removi os arquivos e deixeixei só pastas com seus arquivos, e agora não copia nada.

var
sh:SHFILEOPSTRUCT;
begin
//Copia diretórios e arquivos juntos
sh.Wnd := Handle;
sh.wFunc := FO_COPY;
sh.pFrom := PChar(´C:\Trabalho\AtualizaTECcom\´+#0);
sh.pTo := PChar(´C:\MySql´);
sh.fFlags := FOF_AllowUndo;
SHFileOperation(sh);[/quote]


Responder Citar

06/09/2004

Ipc$

sh.pFrom := PChar(´C:\Trabalho\AtualizaTECcom\´+#0);

Mude para:
sh.pFrom := PChar(´C:\Trabalho\AtualizaTECcom´+0);
ou
sh.pFrom := PChar(´C:\Trabalho\AtualizaTECcom\*.*´+0);


Responder Citar