Baixar arquivos da Web com C#

Este exemplo mostra como baixar arquivos a partir de qualquer website para o disco local. Uma maneira simples para efetuar o download do arquivo é usar a classe WebClient e seu método DownloadFile. Este método tem dois parâmetros, primeiro é a url do arquivo que você deseja fazer o download e o segundo parâmetro é o caminho para o disco local para o qual deseja salvar o arquivo.

De forma síncrona

O código a seguir mostra como fazer o download de arquivos de forma síncrona. Este método bloqueia a thread principal até que o arquivo é baixado ou ocorrer um erro (neste caso, o WebException é lançada).


using System.Net;

WebClient webClient = new WebClient();
webClient.DownloadFile("http://localhost/arquivo.txt", @"c:\temp\arquivo.txt");

De forma assíncrona

Para baixar um arquivo sem bloquear o segmento principal uso DownloadFileAsync método assíncrono. Você também pode definir manipuladores de eventos para mostrar o progresso e para detectar que o arquivo é baixado. Faça o exemplo abaixo com uma aplicação Windows Forms.


private void btnDownload_Click(object sender, EventArgs e)
{
 WebClient webClient = new WebClient();
 webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completo);
 webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressoFeito);
 webClient.DownloadFileAsync(new Uri("http://localhost/arquivo.txt"), @"c:\temp\arquivo.txt");
}

private void ProgressoFeito(object sender, DownloadProgressChangedEventArgs e)
{
 progressBar.Value = e.ProgressPercentage;
}

private void Completo(object sender, AsyncCompletedEventArgs e)
{
 MessageBox.Show("Download efetuado!");
}

Até a próxima.

Anúncios

7 Respostas para “Baixar arquivos da Web com C#

  1. No que bacana. muito legal mano. me ajudou bastante!!
    Depois, se quiser, da uma olhada no meu blog tambem

    inovaprogramacao.wordpress.com

    Não tem umas paradas tão avançadas, mas tem o ensinamento do básico.. e algumas coisas legais tambem.

    Curtir

  2. Legal, mas como eu faço para baixar a pagina toda ( em html ) de um site que tem uma pagina inicial onde é feito o login entes de ir para a pagina que eu quero baixar?

    Curtir

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s