El problema es que no sé como configurar el array de un directorio, que a su vez tiene varios subdirectorios, pero sólo me guarda el nombre los subdirectorios y no me copia ningún archivo de los que contienen los mismos.
El directorio en cuestion es "Docs" del cual derivan como he dicho varios directorios con archivos pero sólo guarda el nombre de los directorios.
Aquí les pongo la función que utilizo.
English translator by Google
Hello to the community, I need help to make a backup of all the files in directories and subdirectories.
The problem is I do not know how to configure the array in a directory, which in turn has several subdirectories, but only saves me the name subdirectories and do not copy any files that contain them.
The directory in question is "Docs" which arise as I said multiple directories with files but only saves the name of the directories.
Here I put the function I use.
Code: Select all
*------------------------------------------------------------------------------*
Function CreateZip()
*------------------------------------------------------------------------------*
Local directorio
local aDir:=Directory("DATEN\*.*" )
local aDirFotos:=Directory("images\*.*")
local aDirDocs :=Directory("Docs\*.*", "D") //*********** Le añado la "D" para que copie los directorios del mismo // I add the "D" so I copy the same directories
local afiles:={}
Local x
local nLen
local fechacopia:="\GBKP"+"-"+ltrim(str(day(date())))+"-"+ltrim(str(month(date())))+"-"+ltrim(str(year(date())))+".ZIP"
directorio := GetFolder("Seleccione donde quiere guardar la Copia")
IF directorio == ""
MSGINFO("Acción Cancelada","Copias de Seguridad")
CopiSeg.Release
Retu Nil
ELSE
CloseTable()
For x:=1 to len(aDir)
aadd(afiles,"DATEN\"+adir[x,1])
next
For x:=1 to len(aDirFotos)
aadd(afiles,"images\"+adirFotos[x,1])
next
For x:=1 to len(aDirDocs) //***** Este es que me falla ya que lleva subdirectorios // This is because it takes me misses subdirectories
aadd(afiles,"Docs\"+adirDocs[x,1])
next
COMPRESS afiles ;
TO directorio+fechacopia ;
BLOCK {|cFile,nPos| ProgressUpdate( nPos , cFile ) } ;
OVERWRITE
OpenTable()
IF FILE(directorio+fechacopia)
MSGINFO("Por favor compruebe que la copia de seguridad ha sido guardada"+CRLF+"en "+directorio+fechacopia+" con la fecha y hora actual.","Copia de Seguridad")
ELSE
MSGSTOP("¡¡ ERROR No se ha podido guardar la copia"+CRLF+"en la ubicación seleccionada ¡¡","¡¡ ERROR ¡¡ - Copia de Seguridad")
ENDIF
ENDIF
CopiSeg.Release
Return nil
Muchas gracias y ¡ Viva HMG !
If anyone can help I would appreciate it.
Thank you very much and HMG Long live!