oFTP:Directory() no devuelve los archivos que existem

Enrrique Vertiz
Posts: 573
Joined: Fri Oct 07, 2005 2:17 pm
Location: Lima - Peru
Been thanked: 4 times
Contact:

oFTP:Directory() no devuelve los archivos que existem

Post by Enrrique Vertiz »

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
User avatar
acuellar
Posts: 1660
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia
Has thanked: 1 time
Been thanked: 3 times

Re: oFTP:Directory() no devuelve los archivos que existem

Post by acuellar »

Estimado Enrique

Intenta así

Code: Select all | Expand

#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.
Enrrique Vertiz
Posts: 573
Joined: Fri Oct 07, 2005 2:17 pm
Location: Lima - Peru
Been thanked: 4 times
Contact:

Re: oFTP:Directory() no devuelve los archivos que existem

Post by Enrrique Vertiz »

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
Enrrique Vertiz
Posts: 573
Joined: Fri Oct 07, 2005 2:17 pm
Location: Lima - Peru
Been thanked: 4 times
Contact:

Re: oFTP:Directory() no devuelve los archivos que existem

Post by Enrrique Vertiz »

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
User avatar
acuellar
Posts: 1660
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia
Has thanked: 1 time
Been thanked: 3 times

Re: oFTP:Directory() no devuelve los archivos que existem

Post by acuellar »

Lo siente estimado

Utilizo MSVC22/BCC74 con Harbour x64
Saludos,

Adhemar C.
Enrrique Vertiz
Posts: 573
Joined: Fri Oct 07, 2005 2:17 pm
Location: Lima - Peru
Been thanked: 4 times
Contact:

Re: oFTP:Directory() no devuelve los archivos que existem

Post by Enrrique Vertiz »

Gracias, sigo revisando
Enrrique Vertiz Pitta
Lima-Peru
xHb 1.23.1026X, Fwh 25.01, BCC74, MySQL 8.0.X, SQLLIB 1.9m
User avatar
CARLOS ATUNCAR
Posts: 202
Joined: Thu Sep 17, 2015 11:40 pm
Location: Chincha - Peru
Has thanked: 1 time
Been thanked: 2 times
Contact:

Re: oFTP:Directory() no devuelve los archivos que existem

Post by CARLOS ATUNCAR »

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
Enrrique Vertiz
Posts: 573
Joined: Fri Oct 07, 2005 2:17 pm
Location: Lima - Peru
Been thanked: 4 times
Contact:

Re: oFTP:Directory() no devuelve los archivos que existem

Post by Enrrique Vertiz »

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
User avatar
cmsoft
Posts: 1317
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina
Has thanked: 2 times
Been thanked: 5 times

Re: oFTP:Directory() no devuelve los archivos que existem

Post by cmsoft »

Yo uso otra clase para conectarme via fpt, tal vez pueda serte de ayuda.

Code: Select all | Expand

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
Enrrique Vertiz
Posts: 573
Joined: Fri Oct 07, 2005 2:17 pm
Location: Lima - Peru
Been thanked: 4 times
Contact:

Re: oFTP:Directory() no devuelve los archivos que existem

Post by Enrrique Vertiz »

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
User avatar
cmsoft
Posts: 1317
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina
Has thanked: 2 times
Been thanked: 5 times

Re: oFTP:Directory() no devuelve los archivos que existem

Post by cmsoft »

Usas harbour o xharbour?
En mi caso uso harbour y tengo que incluir la libreria hbtip
En xharbour desconozco si existe
Enrrique Vertiz
Posts: 573
Joined: Fri Oct 07, 2005 2:17 pm
Location: Lima - Peru
Been thanked: 4 times
Contact:

Re: oFTP:Directory() no devuelve los archivos que existem

Post by Enrrique Vertiz »

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
User avatar
cmsoft
Posts: 1317
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina
Has thanked: 2 times
Been thanked: 5 times

Re: oFTP:Directory() no devuelve los archivos que existem

Post by cmsoft »

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:

Code: Select all | Expand

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/xharbou ... client.prg
Enrrique Vertiz
Posts: 573
Joined: Fri Oct 07, 2005 2:17 pm
Location: Lima - Peru
Been thanked: 4 times
Contact:

Re: oFTP:Directory() no devuelve los archivos que existem

Post by Enrrique Vertiz »

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
Post Reply