jueves, 26 de marzo de 2015

Descarga Asincronica de Archivos y Progressbar con Visual Basic (VB.NET)

Se trata de una pequeña aplicacion que implementa una Descarga Asincronica de Archivos mediante un WebClient, muestra el progreso de la descarga en una Progressbar e indica cuando la descarga ha sido completada.



Descarga del Proyecto Completo Google Drive
Descarga del Proyecto Completo Onedrive

9 comentarios:

  1. Hola como se puede obtener el nombre del archivo y la extencion para guardarlos directamente en una carpeta creada con my.computer.filesystem.createdirectory.

    ResponderEliminar
    Respuestas
    1. Hola:

      Codigo para crear una carpeta llamada MI CARPETA en el Escritorio de un XP (no tengo windows7 a mano):

      Dim RUTA As String = "C:\Documents and Settings\" & Environment.UserName & "\Escritorio\"
      Dim DIRECTORIO As String = "MI CARPETA\"
      If My.Computer.FileSystem.DirectoryExists(RUTA & DIRECTORIO) = False Then
      My.Computer.FileSystem.CreateDirectory(RUTA & DIRECTORIO)
      End If

      Codigo para que el archivo solo contenga el nombre del archivo (suponiendo que el enlace de descarga acabe en .mp4,.mp3,.jpg o algo asi):
      Dim ARCHIVO As String = TextBox1.Text
      ARCHIVO = ARCHIVO.Remove(0, ARCHIVO.LastIndexOf("/") + 1)

      Codigo para una descarga asincronica que guarde el archivo (con su nombre) en una carpeta (MI CARPETA) en el Escritorio de un XP:
      Dim WithEvents CLIENTE As New WebClient

      Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
      Try
      Dim RUTA As String = "C:\Documents and Settings\" & Environment.UserName & "\Escritorio\"
      Dim DIRECTORIO As String = "MI CARPETA\"
      If My.Computer.FileSystem.DirectoryExists(RUTA & DIRECTORIO) = False Then
      My.Computer.FileSystem.CreateDirectory(RUTA & DIRECTORIO)
      End If
      Dim ARCHIVO As String = TextBox1.Text
      ARCHIVO = ARCHIVO.Remove(0, ARCHIVO.LastIndexOf("/") + 1)
      Dim GUARDAR As String = RUTA & DIRECTORIO & ARCHIVO
      CLIENTE.DownloadFileAsync(New Uri(TextBox1.Text), GUARDAR)
      Catch ex As Exception
      MsgBox(ex.Message)
      End Try
      End Sub

      Private Sub CLIENTE_DownloadFileCompleted(sender As Object, e As System.ComponentModel.AsyncCompletedEventArgs) Handles CLIENTE.DownloadFileCompleted
      MsgBox(" DESCARGA FINALIZADA")
      End Sub

      Saludos.

      Eliminar
  2. Hola descargar un archivo como puedo saber su tamaño y el tiempo restante

    ResponderEliminar
    Respuestas
    1. Hola: En el procedimiento CLIENTE.DownloadProgressChanged si escribes (e.) te dira todos los datos que puedes obtener: Total bytes a recibir, recibidos, etc. Si lo coordinas con un timer con intervelo 1000(1 segundo) puedes calcular la velocidad (sera variable) recibidos/segundos y lo que falta para terminar (recibir-recibido)/velocidad. Si tienes alguna duda o no te aclaras déjame un nuevo comentario. Saludos.

      Eliminar
  3. hola, como puedo utilizar este codigo para descargar archivos alojados desde google drive?

    ResponderEliminar
    Respuestas
    1. Hola:

      En principio deberias poder descargar cualquier archivo del que sepas del link de descarga y que no este prohibida esa descarga.
      ¿Has intentado hacerlo?
      ¿Que problemas te da?
      Saludos.
      Saludos.

      Eliminar
  4. Hola, alguien sabe cómo puedo meter el o los enlaces de descarga al código de programa que cuando se ejecute, automáticamente descargue el o los archivos sin pedir confirmación de dónde se va a guardar el archivo (que los almacene en un directorio predeterminado)?

    ResponderEliminar