DevMedia
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
post favorito     comentários

Download de arquivos em .NET

Veja neste artigo como efetuar downloads a partir de recursos próprios do .NET Framework, criando com isso aplicações capazes de baixar arquivos de forma automatizada e sem uma ação direta de seus usuários.

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você poderia comentar o que não lhe agradou?

Confirmo meu voto negativo

Quando se pensa em download de arquivos, uma das primeiras situações que vêm à mente é a de um usuário clicando sobre um link, a fim de gerar uma cópia da página/arquivo escolhido em um diretório específico. Este tipo de procedimento acontece normalmente a partir de um browser, existindo inclusive a opção de se abrir o arquivo a partir deste aplicativo: em termos práticos, funcionalidades com esse comportamento partem do download com gravação em um diretório temporário, com o posterior carregamento do arquivo considerado a partir do browser em questão.

Embora a participação de um usuário acionando um link seja a forma mais comum de se realizar o download de um arquivo, podem existir casos em que uma aplicação precisará trabalhar com dados providos por uma fonte externa. Este tipo de demanda não envolve a intervenção direta de seres humanos, surgindo em decorrência de fatores como:

  • A necessidade de importar imagens ou informações de preços e detalhes técnicos que se encontram em arquivos gerados por fornecedores de um conjunto de produtos;
  • Processos automatizados de atualização de uma aplicação podem exigir a obtenção de arquivos que se encontram numa rede ou na Internet, forçando desse modo o download dos itens requeridos para a execução de procedimentos de upgrade;
  • Demandas como o processamento de informações fiscais, financeiras (atividades de integração com instituições bancárias, por exemplo), de folha de pagamento, dentre outras tarefas similares, com os arquivos necessários estando disponíveis num endereço remoto.
  • A fim de possibilitar o download de arquivos em rotinas internas de um sistema, a plataforma .NET disponibiliza a classe WebClient. Este tipo encontra-se definido no namespace System.Net, sendo que neste último existem outras classes dotadas de funcionalidades para a manipulação de recursos de rede.

    Na Listagem 1 é apresentado um exemplo simples de utilização da classe WebClient. Basicamente, é criada uma nova instância deste tipo e acionado o método DownloadFile. Esta operação recebe como parâmetros duas strings: a URL do arquivo a ser baixado e o caminho de destino do mesmo.

    Listagem 1: Utilizando o método DownloadFile da classe WebClient

    
    // Obtendo URL do arquivo a ser baixado e caminho de destino
    // do mesmo
    string urlArquivo =
        "http://www.devmedia.com.br/imagens/portal2010/logo-devmedia.png";
    string caminhoArquivo = 
        @"C:\Temp\Downloads\devmedia.png";
    
    // Outras instruções de código...
    
    // Efetuando o download
    System.Net.WebClient client =
        new System.Net.WebClient();
    client.DownloadFile(urlArquivo, caminhoArquivo);
    
    

    Se for passado ao método DownloadFile um valor nulo para a URL de origem, uma exceção do tipo ArgumentNullException será gerada. Já no caso da URL ser um endereço inválido, o nome do arquivo for uma string nula ou vazia, o caminho do arquivo não existir ou ainda, um erro acontecer durante o processo de download, será lançada uma exceção do tipo NotSupportedException.

    Na Figura 1 é demonstrada como seria a execução do código de exemplo aqui detalhado. A partir da URL fornecida como parâmetro, foi gerada uma nova imagem de extensão .png no diretório C:\Temp\Downloads\.

    Imagem gerada no diretório

    Figura 1: Imagem gerada no diretório C:\Temp\Downloads\

    Embora o conteúdo apresentado aqui seja bem simples, espero que o mesmo possa ser útil, auxiliando você em tarefas que envolvam a manipulação de arquivos em aplicações escritas a partir do .NET Framework. É isso aí, até uma próxima oportunidade!



    Atua como consultor em atividades voltadas ao desenvolvimento de softwares há mais de 10 anos. Bacharel em Sistemas de Informação, com especialização em Engenharia de Software. Microsoft Certified Technology Specialist (Web, WCF, [...]

    O que você achou deste post?
    Conhece a assinatura MVP?
    Publicidade
    Serviços

    Mais posts