Descargar archivos desde visual basic 6.0

Respuesta de
a
Usuario
Muy buenas, para que me entiendas, mi idea es, que teniendo una url, descargue internamente el archivo en la ubicación que yo le diga, y se trata de archivos de 50 a 100 MB, no de simples fotos... que duran un buen rato vamos xD seria como una especie de gestor de descargas.
Yo he conseguido algo, con el control inet, pero a parte de que no puedo descargar varios archivos simultáneos, en cuanto navegas por internet, la descarga se "desvia", como si se descargase la página y se cancelase el archivo.
Yo tengo esto:
Private Sub Command1_Click()
            Inet1.AccessType = icUseDefault
            Inet1.URL = URL '*
            Inet1.Execute , "GET"
End Sub
'* donde URL es una variable de tipo string, que contiene la direccion directa a un archivo, por ejemplo: "http://download.microsoft.com/download/4/3/d/43d3e3a4-e26c-4570-9da4-129e0615ad2f/Vs6sp6B.exe"
'y luego tengo el propio procedimiento del contro inet
Private Sub Inet1_StateChanged(ByVal State As Integer)
     Dim Total as long 'El tamaño en bytes del archivo a descargar
     Dim Descargado as long 'Para guardar la cantidad de bytes que se van descargando, y poder asi mostrar una barra de progreso por ejemplo.
     Dim contenttype As String
     Select Case State
         Case icError
             vtData = Inet1.ResponseCode & ":" & Inet1.ResponseInfo
         Case icResponseCompleted
             Dim bDone As Boolean: bDone = False
             Dim tempArray() As Byte
             contenttype = Inet1.GetHeader("Content-type")
             Open App. Path + RutaDescarga For Binary Access Write As #1 'RutaDescarga es una variable de tipo string donde se almacena el lugar para descargar, por ejemplo: C:\Archivos de programa
            Total = Inet1.GetHeader("Content-length")
            Descargado = 0
            vtData = Inet1.GetChunk(1024, icByteArray)
            DoEvents
            If Len(vtData) = 0 Then
                bDone = True
            End If
            Do While Not bDone
                Descargado = Descargado + (Len(vtData) * 2)
                tempArray = vtData
                Put #1, , tempArray
                vtData = Inet1.GetChunk(1024, icByteArray)
                DoEvents
                If Len(vtData) = 0 Then
                    bDone = True
                End If
            Loop
            Close #1
       End Select
End Sub

Descargar, descarga, pero pasa eso que te comentaba, a parte de que no permite descarga simultanea (aunque ponga otro inet independiente (inet2)), en cuanto navego por internet, se cancela la descarga, no se como hacer, por eso que pregunte, quizá alguna propiedad del inet, cambiándole el .remoteport quizá, o usando otro control, como el winsock, pero no tengo ni idea, y me harías un gran favor.
Resumiendo, tenemos las siguientes variables:
URL donde almacenar la ruta del archivo
RutaDescarga donde descargar ese archivo
Y con eso quiero que el propio programa descargue ese archivo, a parte de que me vaya almacenando cuanto lleva descargado, y cuanto ocupa en total, para poder llevar el progreso de la descarga.
Siento el tochopost, pero quería dejarlo claro, cualquier duda coméntala, e intento explicarlo mejor, muchas gracias por dedicarle tiempo a leerlo y por si puedes ayudarme a resolverlo.
Un saludo.
Avatar
Experto
Hola,
Prueba con un cliente Ftp que puedas utilizar desde VB6, para archivos de esa magnitud es mejor utilizar el ftp.
Saludos,
Usuario
Ok, que rapidez, gracias por el consejo, hace tiempo que no uso un cliente ftp, pero indagare sobre el tema xD
Muchas gracias.
Saludos