Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-08-2015
ingmichel ingmichel is offline
Miembro
 
Registrado: jun 2007
Posts: 137
Poder: 17
ingmichel Va por buen camino
Copiar solo subdirectorios nuevos

Saludos colegas de delphi espero se encuentren bien, tengo una consulta a ver si alguien me puede ayudar, 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 es decir,
si hoy en la carpeta A tengo los subdirectorios 1,2,3 y los copio a la carpeta B, entonces si mañana agrego los directorio 4,5,6 a la carpeta A, solo copiar los subdirectorios nuevos a la carpeta B, en este caso 4,5,6,

nota. cada sub directorio contiene archivos, necesito copiar subdirectorios con sus archivos.


gracias de antemano.
Responder Con Cita
  #2  
Antiguo 27-08-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.022
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Una vez que los has leido del origen, antes de grabar en el destino verificas que no exista:
Código Delphi [-]
if not directoryexist(sourcedir) then
  copiar( .... )
Responder Con Cita
  #3  
Antiguo 27-08-2015
ingmichel ingmichel is offline
Miembro
 
Registrado: jun 2007
Posts: 137
Poder: 17
ingmichel Va por buen camino
re

Saludos casimiro, gracias por responder, la funcion directoryexists me permite unicamente especificar un directorio en especifico, y en realidad necesitaria validar que no existan multiples directorios en mi caso, como haria esto ?
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Una vez que los has leido del origen, antes de grabar en el destino verificas que no exista:
Código Delphi [-]
if not directoryexist(sourcedir) then
  copiar( .... )
Responder Con Cita
  #4  
Antiguo 27-08-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 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
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Obtener solo los nuevos correos (seguramente sin respuesta) Enan0 Internet 1 02-04-2010 16:20:07
puedo copiar directorios con subdirectorios? manolop Varios 3 27-03-2008 13:17:03
obtener solo los mail nuevos con idpop3 jlcasih Internet 2 08-02-2008 17:32:57
Copiar archivos, directorios y subdirectorios metalfox6383 Varios 3 23-04-2006 21:40:18
Como copiar el contenido de varios txt a uno solo Walterdf Varios 2 01-09-2003 18:14:58


La franja horaria es GMT +2. Ahora son las 12:54:48.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi