Comunidad Gambas-es
Copiar directorio de manera recursiva - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forum-3.html)
+--- Foro: Aplicaciones/Fragmentos de Código (https://gambas-es.org/forum-8.html)
+--- Tema: Copiar directorio de manera recursiva (/thread-1599.html)



Copiar directorio de manera recursiva - alberto-moyano - 28-01-2024

Hola gente, no puedo dar solución al siguiente problema, estoy intentando copiar un directorio y todo su contenido junto con otros directorios (que está todo dentro del proyecto) y no obtengo error, pero tampoco hace nada, una función similar que uso para copiar archivos funciona sin problemas, es esta función

Código:
  If Not Exist(rutaFILES &/ "configDOCBOOK.cfg") Then
    Copy "./configDOCBOOK.cfg" To rutaFILES &/ "configDOCBOOK.cfg"
  End If

Hice un parche (horrible) que funciona, pero me resisto a creer que no haya un método más simple y claro, lo que hago (a lo bruto) es

Código:
  If Not Exist(File.Dir(TextBox1.Text) &/ "antoraBook") Then
    Mkdir rutaANTORA
  End If

y luego copio dentro del directorio antoraBook que se generó en mi disco todos los archivos que están sueltos dentro de la carpeta de Datos siguiendo la lógica del condicional que puse al principio.

Hice otros ejercicios y observé que no se pueden copiar archivos que se encuentren dentro de directorios, solo lo consigo con archivos que cuelguen del raíz de Datos, algo que después leí en el manual online de Gambas

«Tenga en cuenta que esta función no copia carpetas de forma recursiva.»


Gracias y saludos


RE: Copiar directorio de manera recursiva - alberto-moyano - 28-01-2024

Se me ocurrió una solución más limpia, hice un comprimido tar.gz de todo el directorio y sus directorios hijos, quedo resumido a esto

Código:
  If Not Exist(File.Dir(TextBox1.Text) &/ "antoraBook") Then
    Copy "./antoraBook.tar.gz" To File.Dir(TextBox1.Text) &/ "antoraBook.tar.gz"
  End If

y luego se ejecuta un Shell que descomprime el tar.gz y lo borra posteriormente.

Saludos


RE: Copiar directorio de manera recursiva - guizans - 06-02-2024

Hola.

Según leo en la Wiki de Gambas, el comando Copy no sirve para copiar de forma recursiva. No se si servirá, pero mira este comando a ver si hace lo que necesitas.

Comando Move

Un saludo.


RE: Copiar directorio de manera recursiva - jsbsan - 07-02-2024

Mirate esta pagina que viene el codigo de como hacerlo con copy:

https://cursogambas.blogspot.com/2014/07/funciones-para-manejar-ficheros-y.html

Lo hizo hace tiempo Shordi.