¿como descargar archivos de un enlace? Leido 18.272 veces

 
  Broco
Pregunta
Resuelta.
Tengo un array con varios enlaces de el estilo .com/ejemplo.zip
Quiero meter un while y que se descarguen en c:\descargas
No se como podría hacerlo..

 

 





  Jesús
Respuesta correcta
Ha recibido:
1 premios



Dim WC As New System.Net.WebClient
WC.DownloadFile("URL", "ARCHIVO")
WC.Dispose()


 

 


  !!r0Nk0!!
 

 


  Broco
Lo único que he visto es


'Función Api para abrir el cuadro de diálogo Descargar archivo Url
Private Declare Function DoFileDownload Lib "shdocvw.dll" _
(ByVal lpszFile As String) As Long
Private Sub Command1_Click()

' A la función Api solo devemos enviarle la dirección url
DoFileDownload StrConv("http://www.yahoo.com", vbUnicode)

End Sub


Primero el vbUnicode dice que no esta definido o que no tengo permiso para acceder :S
Lo otro es que esto llama al api que te muestra el cuadro ese para guardar, yo lo quiero meter en un while o en un for, para descargarlos rápidos, sin tener que estar eligiendo..

 

 


  !!r0Nk0!!
Entonces lo que buscas es URLDownloadToFile(0,Url,rutadescargaonombre,0,0)

msdn.microsoft.com/en-us/library/ms775123%28VS.85%29.aspx

 

 





  Broco
¿Sabes como llamar al api? es que no me sale...
 

 


  !!r0Nk0!!
 

 


  Broco
Uff tengo esto


Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

Public Function DownloadFile(ByVal URL As String, ByVal LocalFilename As String) As Boolean
Dim lngRetVal As Long
lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
If lngRetVal = 0 Then DownloadFile = True
End Function

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

DownloadFile("http://www.wikun.com/skin2/logoc.jpg", "c:\aaaaaaasa.jpg")
End Sub
End Class

y me dice
Una llamada a la función PInvoke 'WindowsApplication1!WindowsApplication1.Form1::URLDownloadToFile' impidió la correspondencia de la pila. Es posible que la razón sea que la firma PInvoke administrada no coincida con la firma de destino no administrada. Compruebe que la convención y los parámetros de llamada de la firma PInvoke coinciden con la firma no administrada de destino.
Me lo dice en la linea
lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)

 

 


  Broco
Mira esto me funciona



My.Computer.Network.DownloadFile _("http://live.surfear.com/images/surfearlivelogo.png", _"C:\SomeFile.png")


 

 


  Jesús
Respuesta correcta
Ha recibido:
1 premios



Dim WC As New System.Net.WebClient
WC.DownloadFile("URL", "ARCHIVO")
WC.Dispose()


 

 





  Broco
¿Cual es la diferencia?
 

 


  gusmanb
Usa el WebClient, (lo otro son API's), o si quieres algo avanzado usa un HttpWebRequest, es lo mas potente, puedes meterle cookies, parámetros POST, autenticación de forms, etc...

 

 





    ¿Cuantas columnas?     | 2 columnas | 3 columnas | 4 columnas | 5 columnas | 6 columnas |  
    Escribe la dirección web de la imagen:
  Publica tu respuesta  |  Haz Click en el siguiente cuadro para escribir