Copiar estrutura de pastas de um diretório
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!
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
Curtidas 0
Respostas
Gustavo Bretas
24/03/2011
E ae Luiz Carlos, veja se essa função de ajuda!
Abraço!
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;
GOSTEI 0