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.
Hola como se puede obtener el nombre del archivo y la extencion para guardarlos directamente en una carpeta creada con my.computer.filesystem.createdirectory.
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
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.
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.
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)?
Hola como se puede obtener el nombre del archivo y la extencion para guardarlos directamente en una carpeta creada con my.computer.filesystem.createdirectory.
ResponderEliminarHola:
EliminarCodigo 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.
Muchas gracias.
EliminarHola descargar un archivo como puedo saber su tamaño y el tiempo restante
ResponderEliminarHola: 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.
Eliminargracias
Eliminarhola, como puedo utilizar este codigo para descargar archivos alojados desde google drive?
ResponderEliminarHola:
EliminarEn 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.
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