Source Download de arquivos com WebClient

RafaelMcd

Membro
Registrado
Junho 2, 2017
Mensagens
120
Pontos de reações
77
Existem muitas formas de realizar o download de arquivos, e, uma delas, é usar a classe WebClient do namespace System.net para efetuar download e upload de arquivos na internet. Ela é uma alternativa à classe WebRequest que usamos para mostrar como fazer download via HTTP no artigo:
A classe WebClient fornece métodos para enviar dados ou receber dados de qualquer recurso identificado pela URI ; seja local , intranet ou internet.

Ela , na verdade , usa a classe WebRequest para fornecer acesso aos recursos da internet. Instâncias da classe WebClient podem acessar dados com qualquer WebRequest registrados com o método WebRequest.RegisterPrefix.

A plataforma .NET Framework suporta por padrão URIs que começam com : http , https e file:schema

A classe WebClient fornece quatro métodos para fazer o envio de arquivos para um recurso:
  • OpenWrite - retorna um Stream usado para enviar dados para um recurso.
  • UploadData - envia um array de byte para o recurso e retorna um array de byte contendo qualquer resposta.
  • UploadFile - envia um arquivo local para um recurso e retorna um array de btye contendo qualquer resposta.
  • UploadValues - envia um NameValueCollection para o recurso e retorna um array de byte contendo qualquer resposta.
A classe WebClient fornece três métodos para fazer o download de arquivos a partir de um recurso:
  • DownloadData - efetua o download de dados de um recurso e retorna um array de byte.
  • DownloadFile - faz o download de dados de um recurso para um arquivo local.
  • OpenRead - retorna os dados de um recurso com um Stream.
Neste artigo vou criar uma aplicação Windows Forms usando a linguagem VB .NET para fazer o download de arquivos a partir de URI informada, salvando o arquivo em um destino especificado.

O exemplo mostra também como usar a barra de progresso para indicar o andamento do download bem como o cálculo aproximado da velocidade de download e do tempo decorrido e restante para o download.

No exemplo usado vamos usar o método DownloadFileAsync para realizar o download de forma que a thread a partir da iremos usar o método não será bloqueada.

Além disso vamos usar os controles ProgressBar, ToolTip e Timer.

Recursos usados:
Nota: Baixe e use a versão Community 2015 do VS ela é grátis e é equivalente a versão Professional.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Executando o projeto iremos obter:



Download da Source Comentada
Créditos: Macoratti
 

Membros que estão visualizando este tópico (Total: 1, membros: 0, visitantes: 1)

Topo