Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/06/2006, 06:14
Avatar de nosoynadie
nosoynadie
 
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 18 años, 5 meses
Puntos: 1
cliente ftp con el API WinInet

Dicen que no hay nada peor que chapucear el código realizado por otras personas o intentar meterle mano a un código sin saber de qué está hablando. Pues eso es lo que me está pasando.

Intento hacer un cliente 'sencillo' de ftp que suba o baje ficheros en Visual Basic (lenguaje que no domino y que tengo más olvidado que el día de mi noveno cumpleaños) Mi primera opción fue usar 'Internet Transfer Control' y lo conseguí. Conseguí subir ficheros a un servidor FTP determinado pero:
- a costa de hacer demasiadas conexiones
- sin control (por mi parte, quizás debido al planteamiento o a mi incapacidad) de controlar, con exactitud, los retornos del servidor
- con intentos de subida de ficheros incompleta (no subía todos los que debía subir)

Ante este panorama me decidí a usar al API WinInet. Como cualquier inexperto, me bajé la aplicación de cliente FTP que tienen en Microsoft. La leí (más o menos por encima), pereció que la entendí y me decidí a modificarla. La lié

Cuando ejecuto la aplicación, se conecta al servidor, intenta cambiar al directorio de trabajo y me da el siguiente error:
Código:
12018       ERROR_INTERNET_INCORRECT_HANDLE_TYPE
The type of handle supplied is incorrect for this operation.
el código de conexión es el siguiente:
Código:
'declaración de constantes
Public Const INTERNET_OPEN_TYPE_PRECONFIG = 0
Public Const INTERNET_OPEN_TYPE_DIRECT = 1
Public Const INTERNET_INVALID_PORT_NUMBER = 0
Public Const INTERNET_SERVICE_FTP = 1
Public Const INTERNET_FLAG_PASSIVE = &H8000000
nFlag = INTERNET_FLAG_PASSIVE
......
'apertura de la conexión
hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
'establecimiento de la conexión
hConnection = InternetConnect(hOpen, sServer, INTERNET_INVALID_PORT_NUMBER, txtUser, txtPassword, INTERNET_SERVICE_FTP, nFlag, 0)
.....
La pregunta que os hago es sencilla: ¿que tipo de manejador debe ser el de la conexión para que me permita crear directorios? (porque a eso se refiere el error dado, ¿no?)

Los que sepáis os parecerá una tontería de problema pero para mi es la leche, necesito hacer la aplicación, y para ello, antender lo que estoy haciendo. Se agradecerán todas las ayudas
__________________
http://www.nosoynadie.net/