Ver Mensaje Individual
  #4  
Antiguo 27-08-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola ingmichel.
Cita:
Empezado por ingmichel Ver Mensaje
...resulta que tengo una carpeta A con los subdirectorios 1,2,3 cada subdirectorio contiene archivos, lo que necesito es crear una rutina que me copie los subdirectos que existen en la carpeta A que no existen en la carpeta B...
Según interpreto de tu consulta,
Código Delphi [-]
uses ShellApi;

procedure CopyNonExistsFolders(Source, Target: string);
var
  SR: TSearchRec;
  ToCopy: Boolean;
  F : SHFILEOPSTRUCT;
begin
  Source := IncludeTrailingPathDelimiter(Source);
  Target := IncludeTrailingPathDelimiter(Target);
  if FindFirst(Source + '*.*', faDirectory, SR) = 0 then
    repeat
      ToCopy := ((SR.Attr and faDirectory) = faDirectory) and
                (SR.Name <> '.') and (SR.Name <> '..') and
                not DirectoryExists(Target + SR.Name);
      if ToCopy then
      begin
        F.Wnd    := Application.Handle;
        F.wFunc  := FO_COPY;
        F.pFrom  := PChar(Source+SR.Name+#0);
        F.pTo    := PChar(Target+#0);
        F.fFlags := FOF_NOCONFIRMATION or FOF_NOCONFIRMMKDIR;
        ShFileOperation(F);
      end;
    until FindNext(SR) <> 0;
  FindClose(SR);
end;
Ejemplo de uso:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  CopyNonExistsFolders('C:\SourceFolder', 'C:\TargetFolder');
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita