SDV recorrer carpeta servidor


([N3] Servinfor) #1

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?


([N1] Daniel) #2

Buenas, creo que lo que necesitas es esto:

Sdv: Recorrer directorio del servidor

Además, un compañero en el foro compartió un vin de una aplicación que simula un cliente de FTP. También te puede orientar.

Simular cliente FTP

Saludos.


([N3] pacosatu) #3

Hola Servinfor.

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.

Saludos
Paco Satué


([N3] Servinfor) #4

Muchas gracias, voy a probarlo