La descarga de archivos desde una URL es una tarea común en aplicaciones de C#. En este tutorial, aprenderemos cómo descargar un archivo a partir de una URL en C#.
Descarga de un archivo usando WebClient
La forma más sencilla de descargar un archivo desde una URL es usar la clase WebClient. Esta clase proporciona métodos para descargar archivos de forma síncrona y asíncrona. El siguiente código muestra cómo descargar un archivo de forma síncrona:using System.Net;
using (WebClient client = new WebClient())
{
client.DownloadFile("<https://ejemplo.com/archivo.pdf>", @"C:\\descargas\\archivo.pdf");
}
En el ejemplo anterior, usamos la clase WebClient para descargar el archivo "archivo.pdf" desde la URL "https://ejemplo.com/archivo.pdf" y guardarlo en la ruta especificada.
Descarga de un archivo usando HttpClient
Otra forma de descargar un archivo desde una URL es usar la clase HttpClient. Esta clase proporciona una forma fácil de enviar solicitudes HTTP y recibir respuestas HTTP en C#. El siguiente código muestra cómo descargar un archivo usando HttpClient:using System.Net.Http;
using (HttpClient client = new HttpClient())
{
HttpResponseMessage response = await client.GetAsync("<https://ejemplo.com/archivo.pdf>");
response.EnsureSuccessStatusCode();
byte[] content = await response.Content.ReadAsByteArrayAsync();
File.WriteAllBytes(@"C:\\descargas\\archivo.pdf", content);
}
En el ejemplo anterior, usamos la clase HttpClient para enviar una solicitud HTTP GET a la URL "https://ejemplo.com/archivo.pdf" y recibir la respuesta HTTP. Luego, escribimos el contenido de la respuesta en un archivo en la ruta especificada.
Descarga de un archivo con ProgressBar
Si desea mostrar una barra de progreso mientras se descarga el archivo, puede usar la clase WebClient y el evento DownloadProgressChanged. El siguiente código muestra cómo descargar un archivo y mostrar una barra de progreso:using System.Net;
private void DescargarArchivo()
{
using (WebClient client = new WebClient())
{
client.DownloadProgressChanged += WebClient_DownloadProgressChanged;
client.DownloadFileCompleted += WebClient_DownloadFileCompleted;
client.DownloadFileAsync(new Uri("<https://ejemplo.com/archivo.pdf>"), @"C:\\descargas\\archivo.pdf");
}
}
private void WebClient_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
progressBar.Value = e.ProgressPercentage;
}
private void WebClient_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
MessageBox.Show("Descarga completada");
}
En el ejemplo anterior, usamos la clase WebClient para descargar el archivo "archivo.pdf" desde la URL "https://ejemplo.com/archivo.pdf" y mostrar una barra de progreso mientras se descarga. El evento DownloadProgressChanged se encarga de actualizar la barra de progreso y el evento DownloadFileCompleted se activa cuando se completa la descarga.
Comentarios
Publicar un comentario