Hola tengo en el servidor una carpeta con archivos de cada cliente, he probado y los puedo descargar por por SDV pero ahora lo que me gustaría es que velneo leyera los archivos que hay, poder escribir sus nombre sen una tabla y entonces ya poder descargarlos pues a esas carpetas suben multitud de y no se los que hay en cada momento
¿Se podría hacer con SDV:recorrer carpeta del servidor? ¿como sería el proceso si puede hacerse?
Si tienes subcarpetas en el servidor, el comando “SDV: Recorrer carpeta del servidor” está incompleto porque solo devuelve el contenido de la carpeta actual y no de las subcarpetas.
Necesitas por tanto un proceso recursivo que devuelva todos los niveles de la carpeta.
En el siguiente ejemplo se copia una Carpeta del servidor remoto a una Carpeta Local.
PROCESO - PRO_SDV_COPIAR_CARPETA@MiApp
Rem ( Recorre de forma recursiva una Carpeta Remota y copia los Ficheros a la Carpeta Local )
Rem ( Parámetros: )
Rem ( Carpeta a Remota: CLIB_CARPETA_SDV )
Rem ( Carpeta Local: CLIB_CARPETA_LOCAL )
Rem ( Directorio a recorrer: CLIB_DIRECTORIO )
Libre
Rem ( La Carpeta Local ya debe existir )
Set ( CPATH_DIR_REMOTO, CLIB_CARPETA_SDV + CLIB_DIRECTORIO )
SDV: Recorrer directorio del servidor ( CPATH_DIR_REMOTO, CITEM, LES_DIR, LES_SOLOLECTURA )
Set ( CLIB_PATH_FICHERO_DESTINO, CLIB_CARPETA_LOCAL + CLIB_DIRECTORIO + CITEM )
If ( LES_DIR )
Rem ( Es una Subcarpeta remota que copiamos a la Carpeta Local y recorremos de forma recursiva )
Crear directorio ( CLIB_PATH_FICHERO_DESTINO, Sí, LOK )
// Mensaje ( "Descargar carpeta: " + CPATH_DIR_REMOTO + CITEM + " -->> a ... \n" +
CLIB_PATH_FICHERO_DESTINO, Información, , "Copiar carpeta remota" )
Crear manejador de objeto ( oCopiar, Proceso PRO_SDV_COPIAR_CARPETA@MiApp )
Set variable local de objeto ( oCopiar, CLIB_CARPETA_SDV, CLIB_CARPETA_SDV )
Set variable local de objeto ( oCopiar, CLIB_CARPETA_LOCAL, CLIB_CARPETA_LOCAL )
Set variable local de objeto ( oCopiar, CLIB_DIRECTORIO, CLIB_DIRECTORIO + CITEM + "/" )
Disparar objeto ( oCopiar, 1º plano: Local (síncrono), LOK )
Libre
Else
Rem ( Es un fichero que copiamos a la Carpeta Local )
// Mensaje ( "Copiar fichero: " + CLIB_PATH_FICHERO_DESTINO, Información, , "Copiar fichero remoto" )
SDV: Descargar fichero a local ( CPATH_DIR_REMOTO + CITEM, CLIB_PATH_FICHERO_DESTINO, )
Puedes adaptar el proceso para que en lugar de copiar los ficheros a Local vaya rellenando una tabla.