Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   vaciar dir1 y copiar archivos de dir2 a dir1 (https://www.clubdelphi.com/foros/showthread.php?t=48569)

Greco 28-09-2007 01:04:37

vaciar dir1 y copiar archivos de dir2 a dir1
 
Hola, Necesito realizar lo siguiente:

Tengo una carpeta (por ejemplo c:/carpeta1) la cual contiene varias carpetas en su interior (DirBase, dir1, dir2, dir3, ... dirn), y cada una de estas carpetas contienen archivos con una extención determinasa en su interior.

Lo que deseo hacer es copiar el contenido de dir1 a DirBase, si DirBase contenia ya archivos, estos deben ser eliminados.

Tengo la idea de lo que quiero realizar pero no se de que forma plantearmelo, no se cual seria la mejor forma de hacerlo, se me ocurre lo siguiente.

1.- Eliminar la carpeta DirBase en caso de que exista.
2.- Crear la carpeta DirBase.
3.- Copiar el contenido de DirX hacia DirBase.

Despues si se desea copiar el contenido de Dir3 hacia DirBase realizaría las mismas tareas 1, 2 y 3.

Talvez exista otra forma mas profecional de hacerlo.

Buscando en el foro encontre el siguiente código que me sirve para borrar el contenido de DirBase, con esto ya me estoy evitando el paso 1 y 2 (borrar DirBase con su contenido y volver a crearlo). asi ya no tengo que borrar DirBase y volverlo a crear, solo borro su contenido y listo.

Código Delphi [-]
 Var
  
  MiDir:String;  // Donde están los ficheros
  MisFicheros:String;  //Cadena que contiene el nombre con comodines
  RBusqueda:TSearchRec;  //Está definida en la unidad SysUtils
 
 Begin
  MiDir:='C:\Carpeta1\DirBase\';
  MisFicheros:='*.txt';
  
 If FindFirst(MiDir+MisFicheros,faanyfile, RBusqueda)=0 Then
  Begin
   DeleteFile(PChar(MiDir+RBusqueda.Name));  //Borro el primero si existe
 
     //Busco todos los del mismo patrón y los borro
     While FindNext(RBusqueda)=0 Do
      Begin
       DeleteFile(PChar(MiDir+RBusqueda.Name));
      End;
 
    //Ambas funciones devuelven 0 si la búsqueda tiene éxito
  End;

Por lo que ya tengo resuelta la primera parte, ahora me queda averigual como COPIAR los archivos que esten dentro de la carpeta Dir1 hacia DirBase.

Alguien me podría ayudar en eso??, los ejemplos que he encontrado en el foro no los he logrado entender bien.

Disculpen por alargarme en el post y si es que no fui muy claro en mi explicación.

Saludos

Neftali [Germán.Estévez] 28-09-2007 10:34:25

Cita:

Empezado por Greco (Mensaje 234578)
...ahora me queda averigual como COPIAR los archivos que esten dentro de la carpeta Dir1 hacia DirBase.

Aquí tienes una función que te devuelve todos los ficheros que hay en un directorio (y sus subdirectorios) en un StringList.
Sólo tienes que ejecutarla y luego hacer un recorrido del StringList y ejecutar dos operaciones:

* Mira ForceDirectories (para ir creando la nueva estructura de directorios)
* MoveFile para ir moviendo los ficheros.

Greco 29-09-2007 02:08:48

Cita:

Empezado por Neftali (Mensaje 234651)
Aquí tienes una función que te devuelve todos los ficheros que hay en un directorio (y sus subdirectorios) en un StringList.
Sólo tienes que ejecutarla y luego hacer un recorrido del StringList y ejecutar dos operaciones:

* Mira ForceDirectories (para ir creando la nueva estructura de directorios)
* MoveFile para ir moviendo los ficheros.

Muchas gracias.

Me ponre en marcha en eso durante el fin de semana y cualquier duda que tenga lo comento en este hilo.

Saludos


La franja horaria es GMT +2. Ahora son las 02:49:39.

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