Page 1 of 2
oFTP:Directory() no devuelve los archivos que existem
Posted: Mon Apr 14, 2025 12:44 pm
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
Re: oFTP:Directory() no devuelve los archivos que existem
Posted: Mon Apr 14, 2025 2:29 pm
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
Re: oFTP:Directory() no devuelve los archivos que existem
Posted: Mon Apr 14, 2025 5:34 pm
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 )
Re: oFTP:Directory() no devuelve los archivos que existem
Posted: Mon Apr 14, 2025 5:34 pm
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 )
Re: oFTP:Directory() no devuelve los archivos que existem
Posted: Mon Apr 14, 2025 6:59 pm
by acuellar
Lo siente estimado
Utilizo MSVC22/BCC74 con Harbour x64
Re: oFTP:Directory() no devuelve los archivos que existem
Posted: Mon Apr 14, 2025 7:32 pm
by Enrrique Vertiz
Gracias, sigo revisando
Re: oFTP:Directory() no devuelve los archivos que existem
Posted: Tue Apr 15, 2025 12:43 pm
by karinha
Re: oFTP:Directory() no devuelve los archivos que existem
Posted: Tue Apr 15, 2025 2:59 pm
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
Re: oFTP:Directory() no devuelve los archivos que existem
Posted: Tue Apr 15, 2025 9:42 pm
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 ...
Re: oFTP:Directory() no devuelve los archivos que existem
Posted: Wed Apr 16, 2025 12:15 pm
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
Re: oFTP:Directory() no devuelve los archivos que existem
Posted: Wed Apr 16, 2025 10:12 pm
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. )
Re: oFTP:Directory() no devuelve los archivos que existem
Posted: Thu Apr 17, 2025 7:00 pm
by cmsoft
Usas harbour o xharbour?
En mi caso uso harbour y tengo que incluir la libreria hbtip
En xharbour desconozco si existe
Re: oFTP:Directory() no devuelve los archivos que existem
Posted: Thu Apr 17, 2025 8:01 pm
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.
Re: oFTP:Directory() no devuelve los archivos que existem
Posted: Thu Apr 17, 2025 8:55 pm
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
Re: oFTP:Directory() no devuelve los archivos que existem
Posted: Thu Apr 17, 2025 10:59 pm
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