Array
(
)

Copiar arquivos e pastas

Paulo
   - 02 set 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)?


Ipc$
   - 02 set 2004

Uses ShellApi;
#Código


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;



Ipc$
   - 02 set 2004

Oops
#Código


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



Paulo
   - 06 set 2004

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);


Ipc$
   - 06 set 2004


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

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