PDA

Ver la Versión Completa : vaciar dir1 y copiar archivos de dir2 a dir1


Greco
28-09-2007, 01:04:37
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.


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
...ahora me queda averigual como COPIAR los archivos que esten dentro de la carpeta Dir1 hacia DirBase.

Aquí (http://www.clubdelphi.com/foros/showpost.php?p=63159&postcount=5)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
Aquí (http://www.clubdelphi.com/foros/showpost.php?p=63159&postcount=5)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