Copiar estrutura de pastas de um diretório

Delphi

24/03/2011

Bom dia,

como faço para copiar a estrutura de pastas de um diretorio para outro?

Exemplo:

c:\trabalhos é a origem.

dentro da origem vou ter

\capa\livro
\fonts\
\projeto\doc
\projeto\img

tenho que criar essa etrutura e copiar os arquvios para um destino que no exemplo seria o d:

teria que ficar:

d:\capa\livro
d:\fonts\
d:\projeto\doc
d:\projeto\img

Alguém poderia me ajudar?

Obrigado!


Luiz Junior

Luiz Junior

Curtidas 0

Respostas

Gustavo Bretas

Gustavo Bretas

24/03/2011

E ae Luiz Carlos, veja se essa função de ajuda!  
 
function mtdCopiaPasta(nOrigem, nDestino : String; nRecursivo : Boolean): Integer;
var
  nPasta : TSearchRec;
  vliContador, vliErro: integer;
begin
  nOrigem := IfThen(nOrigem[Length(nOrigem)] = '\', nOrigem, nOrigem+'\');
  nDestino := IfThen(nDestino[Length(nDestino)] = '\', nDestino, nDestino+'\');
  vliErro := FindFirst(nOrigem + '*.*', faAnyFile, nPasta);
  while vliErro = 0 do
  begin
    if (nPasta.Attr = faDirectory) then
    begin
      if nRecursivo and (not ((nPasta.Name = '.') or (nPasta.Name = '..'))) then
      begin
        ForceDirectories(AnsiReplaceStr(nOrigem+nPasta.Name, nOrigem, nDestino));
        mtdCopiaPasta(nOrigem+nPasta.Name, AnsiReplaceStr(nOrigem+nPasta.Name, nOrigem, nDestino), nRecursivo);
      end;
      vliErro := FindNext(nPasta);
    end
    else
    begin
      ForceDirectories(nDestino);
      vliErro := IfThen(CopyFile(PChar(nOrigem+nPasta.Name), PChar(AnsiReplaceStr(nOrigem+nPasta.Name, nOrigem, nDestino)+nPasta.Name), False), 0, 1);
      inc(vliContador);
      vliErro := FindNext(nPasta);
    end;
  end;
  // -> Arquivos Copiados
  Result := vliContador;
end;
  Abraço!
GOSTEI 0
POSTAR