FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour oFTP:Directory() no devuelve los archivos que existem
Posts: 582
Joined: Fri Oct 07, 2005 02:17 PM
oFTP:Directory() no devuelve los archivos que existem
Posted: Mon Apr 14, 2025 12:44 PM

Buen dia

Me conecto a un FTP y trato de obtener el listado de los archivos, pero siempre me devuelve en blanco, pero la carpeta tiene 13 archivos y los veo con Filezilla, ojo si hace la conexion, pero no lista nada, que puede ser, alguna ayuda ??

  oInternet := TInternet():New()

  IF oInternet == NIL

     MsgStop("No se pudo inicializar TInternet().", "Error")

     RETURN NIL

  ENDIF



  // Añadir FTP_PASSIVE_MODE es crucial

  oFTP := tFtp():New( "ftp.ejemplo.net", oInternet, "user", "clave", 134217728 )

  IF oFTP == NIL .OR. oFTP:hFTP == NIL

     MsgStop( "No se pudo conectar al servidor FTP.", "Error de Conexión" )

     oInternet:End()

     RETURN NIL

  ENDIF



  aFiles := oFTP:Directory( )

aqui el aFiles no lo llena con los datos de los archivos, no lo uso hace tiempo, pero antes si funcionaba, no se que ha cambiado.

Gracias

Enrrique Vertiz Pitta

Lima-Peru

xHb 1.23.1026X, Fwh 25.01, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: oFTP:Directory() no devuelve los archivos que existem
Posted: Mon Apr 14, 2025 02:29 PM
Estimado Enrique

Intenta así
#include "FiveWin.ch"
*
function Main()
   aFiles:={}
   cusuario:="user"
   cpassword:="pass"
   cftpsite:="dominio.com"
   
        oCon:=Turl():New("ftp://"+cusuario+":"+cpassword+"@"+cftpsite)
        oFTP:= TIpClientFtp():New(oCon, .f.)
        oFTP:open()
        aFiles:=oFtp:ListFiles("data\*.*")
        If Len(aFiles)=0
          msgstop("No se pudo","Acceso FTP")
        Else
          xBrowse(aFiles)
        endif
        oftp:close()
Return nil
Saludos,



Adhemar C.
Posts: 582
Joined: Fri Oct 07, 2005 02:17 PM
Re: oFTP:Directory() no devuelve los archivos que existem
Posted: Mon Apr 14, 2025 05:34 PM

Saludos Adhemar, gracias por tu respuesta

En esta linea: aFiles:=oFtp:ListFiles(".")

Me da este error (abajo adjunto), mientras reviso el foro (ya empece antes de escribir pero aun no encuentro nada) voy a revisar la clase de Javier Lloris creo que por ahi esta el camino ... tendras idea de como solucionarlo ?? trabajo con xHarbour y si estan enlazadas las librerias RTL y TIP de xHarbour ... gracias

Application

===========

Path and name: D:\Fwh\Fwh2501\samples\ftpdir03.exe (32 bits)

Size: 4,266,496 bytes

Compiler version: xHarbour 1.3.1 Intl. (SimpLex) (Build 20250226)

FiveWin version: FWH 25.01

C compiler version: Borland/Embarcadero C++ 7.7 (32-bit)

Windows 11 64 Bits, version: 6.2, Build 9200

Time from start: 0 hours 0 mins 0 secs

Error occurred at: 04/14/25, 12:06:00

Error description: Error BASE/3012 Argument error: INETSENDALL

Args:

 [   1] = U

 [   2] = C   PASV



 [   3] = N   6

Stack Calls

===========

Called from: => INETSENDALL( 0 )

Called from: source\tip\client.prg => TIPCLIENTFTP:INETSENDALL( 0 )

Called from: source\tip\ftpcln.prg => TIPCLIENTFTP:PASV( 0 )

Called from: source\tip\ftpcln.prg => TIPCLIENTFTP:LIST( 0 )

Called from: source\tip\ftpcln.prg => TIPCLIENTFTP:LISTFILES( 0 )

Called from: ftpdir03.prg => MAIN( 9 )

Enrrique Vertiz Pitta

Lima-Peru

xHb 1.23.1026X, Fwh 25.01, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Posts: 582
Joined: Fri Oct 07, 2005 02:17 PM
Re: oFTP:Directory() no devuelve los archivos que existem
Posted: Mon Apr 14, 2025 05:34 PM

Saludos Adhemar, gracias por tu respuesta

En esta linea: aFiles:=oFtp:ListFiles(".")

Me da este error (abajo adjunto), mientras reviso el foro (ya empece antes de escribir pero aun no encuentro nada) voy a revisar la clase de Javier Lloris creo que por ahi esta el camino ... tendras idea de como solucionarlo ?? trabajo con xHarbour y si estan enlazadas las librerias RTL y TIP de xHarbour ... gracias

Application

===========

Path and name: D:\Fwh\Fwh2501\samples\ftpdir03.exe (32 bits)

Size: 4,266,496 bytes

Compiler version: xHarbour 1.3.1 Intl. (SimpLex) (Build 20250226)

FiveWin version: FWH 25.01

C compiler version: Borland/Embarcadero C++ 7.7 (32-bit)

Windows 11 64 Bits, version: 6.2, Build 9200

Time from start: 0 hours 0 mins 0 secs

Error occurred at: 04/14/25, 12:06:00

Error description: Error BASE/3012 Argument error: INETSENDALL

Args:

 [   1] = U

 [   2] = C   PASV



 [   3] = N   6

Stack Calls

===========

Called from: => INETSENDALL( 0 )

Called from: source\tip\client.prg => TIPCLIENTFTP:INETSENDALL( 0 )

Called from: source\tip\ftpcln.prg => TIPCLIENTFTP:PASV( 0 )

Called from: source\tip\ftpcln.prg => TIPCLIENTFTP:LIST( 0 )

Called from: source\tip\ftpcln.prg => TIPCLIENTFTP:LISTFILES( 0 )

Called from: ftpdir03.prg => MAIN( 9 )

Enrrique Vertiz Pitta

Lima-Peru

xHb 1.23.1026X, Fwh 25.01, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: oFTP:Directory() no devuelve los archivos que existem
Posted: Mon Apr 14, 2025 06:59 PM

Lo siente estimado

Utilizo MSVC22/BCC74 con Harbour x64

Saludos,



Adhemar C.
Posts: 582
Joined: Fri Oct 07, 2005 02:17 PM
Re: oFTP:Directory() no devuelve los archivos que existem
Posted: Mon Apr 14, 2025 07:32 PM

Gracias, sigo revisando

Enrrique Vertiz Pitta

Lima-Peru

xHb 1.23.1026X, Fwh 25.01, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: oFTP:Directory() no devuelve los archivos que existem
Posted: Tue Apr 15, 2025 12:43 PM
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 230
Joined: Thu Sep 17, 2015 11:40 PM
Re: oFTP:Directory() no devuelve los archivos que existem
Posted: Tue Apr 15, 2025 02:59 PM

Hola he tenido ese mismo problema y el problema es con el proveedor de internet que tiene puertos cerrados, prueba conectar la pc con el wifi del celular y revisa si persiste el problema

Carlos Atuncar - CaSoftSystem
Chincha - Perú
+51983478218
carlosalbatun@gmail.com
Posts: 582
Joined: Fri Oct 07, 2005 02:17 PM
Re: oFTP:Directory() no devuelve los archivos que existem
Posted: Tue Apr 15, 2025 09:42 PM

Saludos

Gracias Carlos, pero me pasa con los 3 proveedores mas grandes aqui Movistar, Claro y Win, cubren el 90% (aprox) de las instalaciones ... ademas Filezilla si me deja y una prueba con Chilkat tambien.

Joao gracias por los links revisare 1x1 a ver si encuentro luz ...

Enrrique Vertiz Pitta

Lima-Peru

xHb 1.23.1026X, Fwh 25.01, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: oFTP:Directory() no devuelve los archivos que existem
Posted: Wed Apr 16, 2025 12:15 PM
Yo uso otra clase para conectarme via fpt, tal vez pueda serte de ayuda.
FUNCTION Main()
LOCAL  aFiles:={},   cusuario:="user@dominio.com",   cpassword:="pass",   cftpsite:="ftp://dominio.com", oUrl
oUrl := tUrl():New( cftpsite )
oUrl:cUserid := cusuario
oUrl:cPassword := cpassword
oFTP := tIPClientFtp():New( oUrl, .t. )
oFTP:nConnTimeout := 20000
oFTP:bUsePasv := .t.
oFtp:bTrace := {|| nil}
oFTP:Open()
IF oFtp <> NIL
   aFiles:=oFtp:ListFiles("data\*.*")
   xbrowse(aFiles)
ENDIF
RETURN nil
Posts: 582
Joined: Fri Oct 07, 2005 02:17 PM
Re: oFTP:Directory() no devuelve los archivos que existem
Posted: Wed Apr 16, 2025 10:12 PM

Gracias Cesar

Cree un PRG solo con lo que me enviaste y me salio este mensaje:

Error BASE/1081 Operation not supported: TIPCLIENTFTP:New()

En esta linea:

oFTP := tIPClientFtp():New( oUrl, .t. )

Enrrique Vertiz Pitta

Lima-Peru

xHb 1.23.1026X, Fwh 25.01, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: oFTP:Directory() no devuelve los archivos que existem
Posted: Thu Apr 17, 2025 07:00 PM

Usas harbour o xharbour?

En mi caso uso harbour y tengo que incluir la libreria hbtip

En xharbour desconozco si existe

Posts: 582
Joined: Fri Oct 07, 2005 02:17 PM
Re: oFTP:Directory() no devuelve los archivos que existem
Posted: Thu Apr 17, 2025 08:01 PM

Saludos,

Uso xHarbour y enlazo una LIB de nombre tip.lib, pero no tengo idea de si es lo mismo, gracias nuevamente.

Enrrique Vertiz Pitta

Lima-Peru

xHb 1.23.1026X, Fwh 25.01, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: oFTP:Directory() no devuelve los archivos que existem
Posted: Thu Apr 17, 2025 08:55 PM
Por lo que veo en el GitHub de xHarbour, la clase necesita de las credenciales para iniciar
No puedo probarlo porque no tengo xharbour, pero entiendo que sería algo asi:
FUNCTION Main()
LOCAL  aFiles:={},   cusuario:="user@dominio.com",   cpassword:="pass",   cftpsite:="ftp://dominio.com", oUrl, oCredentials
oUrl := tUrl():New( cftpsite )
oCredentials := tIPCredentials():New()
oCredentials:cUserid := cusuario
oCredentials:cPassword := cpassword
oFTP := tIPClientFtp():New( oUrl, .t., oCredentials )
oFTP:nConnTimeout := 20000
oFTP:Open()
IF oFtp <> NIL
   aFiles:=oFtp:ListFiles("data\*.*")
   xbrowse(aFiles)
ENDIF
RETURN nil
No se si funcione, porque no lo probe, pero aca tenes el link por si te interesa mirar.
https://github.com/xHarbour-org/xharbour/blob/main/source/tip/client.prg
Posts: 582
Joined: Fri Oct 07, 2005 02:17 PM
Re: oFTP:Directory() no devuelve los archivos que existem
Posted: Thu Apr 17, 2025 10:59 PM

Gracias nuevamente por tu apoyo, sale error :

Application

===========

Path and name: D:\Fwh\Fwh2501\samples\ftpdir04.exe (32 bits)

Size: 4,267,520 bytes

Compiler version: xHarbour 1.3.1 Intl. (SimpLex) (Build 20250226)

FiveWin version: FWH 25.01

C compiler version: Borland/Embarcadero C++ 7.7 (32-bit)

Windows 11 64 Bits, version: 6.2, Build 9200

Time from start: 0 hours 0 mins 0 secs

Error occurred at: 04/17/25, 17:50:45

Error description: Error BASE/1081 Operation not supported: TIPCLIENTFTP:New()

Args:

 [   1] = O   TIPCLIENTFTP

 [   2] = C

El codigo:

include "FiveWin.ch"

FUNCTION Main()

LOCAL aFiles:={}, cusuario:="usuario", cpassword:="pass", cftpsite:="ftp.xxx.net", oUrl, oFtp, oCredentials

oUrl := tUrl():New( cftpsite )

oCredentials := tIPCredentials():New()

oCredentials:cUserid := cusuario

oCredentials:cPassword := cpassword

oFTP := tIPClientFtp():New( oUrl, .t., oCredentials )

oFTP:nConnTimeout := 20000

oFTP:bUsePasv := .t.

oFtp:bTrace := {|| nil}

oFTP:Open()

IF oFtp <> NIL

aFiles:=oFtp:ListFiles(".")

xbrowse(aFiles)

ENDIF

RETURN nil

Seguire viendo, porque si funciona en Hb y no en xHb

Enrrique Vertiz Pitta

Lima-Peru

xHb 1.23.1026X, Fwh 25.01, BCC74, MySQL 8.0.X, SQLLIB 1.9m