none
Download zipFile usando Windows Service RRS feed

  • Pergunta

  • Bom dia, pessoal

    gostaria de criar um serviço no windows ( robozinho ) que faça o download de um determinado site em uma certa hora.

    tentei usar o webClient.DownloadFile mas não estou conseguindo.

    Existe uma maneira melhor para fazer esse robozinho ?

    Desde já agradeço pela atenção.

    Att.

    Cristiano

    terça-feira, 20 de março de 2018 15:04

Respostas

  • HttpWebRequest webReq = (HttpWebRequest)HttpWebRequest.Create(linkUrl);
    try
    {
        webReq.CookieContainer = new CookieContainer();
        webReq.Method = "GET";
        using (WebResponse response = webReq.GetResponse())
        {
            byte[] buffer = new byte[1024];
    
                FileStream fileStream = File.OpenWrite("[file name to write]");
                using (Stream input = response.GetResponseStream())
                {        
                    total = input.Length;
    
                    int size = input.Read(buffer, 0, buffer.Length);
                    while (size > 0)
                    {
                        fileStream.Write(buffer, 0, size);
                        received += size;
    
                        size = input.Read(buffer, 0, buffer.Length);
                    }
                }
    
                fileStream.Flush();
                fileStream.Close();
        }
    }
    catch (Exception ex)
    {
        ...
    }


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    • Marcado como Resposta cristianocsi terça-feira, 20 de março de 2018 19:37
    terça-feira, 20 de março de 2018 17:32

Todas as Respostas

  • Qual erro está tendo? Como está seu código?

    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    terça-feira, 20 de março de 2018 15:30
  •            

    static void Main()
    {

     WebClient webClient = new WebClient();
                Uri teste = new Uri("http://wwww.site.com.br/arquivo.zip");
                webClient.DownloadFile(teste, @"c:\temp\arquivo.zip");

    }

    Erro:

    An unhandled exception of type 'System.Net.WebException' occurred in System.dll

    Additional information: Too many automatic redirections were attempted.


    • Editado cristianocsi terça-feira, 20 de março de 2018 16:52
    terça-feira, 20 de março de 2018 16:50
  • Tente assim:

    HttpWebRequest webReq = (HttpWebRequest)HttpWebRequest.Create(linkUrl);
    try
    {
        webReq.CookieContainer = new CookieContainer();
        webReq.Method = "GET";
        using (WebResponse response = webReq.GetResponse())
        {
            using (Stream stream = response.GetResponseStream())
            {
                StreamReader reader = new StreamReader(stream);
                res = reader.ReadToEnd();
                ...
            }
        }
    }
    catch (Exception ex)
    {
        ...
    }
    Ref: https://stackoverflow.com/a/30015354/1184708


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    terça-feira, 20 de março de 2018 17:05
  • Ja vi esse codigo antes. Qual variavel é "res" ?

    Como eu salvo na pasta destino a partir desse codigo? Essa tamb~em foi minha dificuldade.

    terça-feira, 20 de março de 2018 17:06
  • O método ReadToEnd da classe StreamReader retorna uma String, portanto res é uma variável String.

    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    terça-feira, 20 de março de 2018 17:15
  • Obrigado pelas respostas, Juliano.

    O arquivo é um zip como eu jogo ele numa string? 

    terça-feira, 20 de março de 2018 17:22
  • HttpWebRequest webReq = (HttpWebRequest)HttpWebRequest.Create(linkUrl);
    try
    {
        webReq.CookieContainer = new CookieContainer();
        webReq.Method = "GET";
        using (WebResponse response = webReq.GetResponse())
        {
            byte[] buffer = new byte[1024];
    
                FileStream fileStream = File.OpenWrite("[file name to write]");
                using (Stream input = response.GetResponseStream())
                {        
                    total = input.Length;
    
                    int size = input.Read(buffer, 0, buffer.Length);
                    while (size > 0)
                    {
                        fileStream.Write(buffer, 0, size);
                        received += size;
    
                        size = input.Read(buffer, 0, buffer.Length);
                    }
                }
    
                fileStream.Flush();
                fileStream.Close();
        }
    }
    catch (Exception ex)
    {
        ...
    }


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    • Marcado como Resposta cristianocsi terça-feira, 20 de março de 2018 19:37
    terça-feira, 20 de março de 2018 17:32
  • Juliano,

    o trecho long total = input.Length; da erro, mas vi que não é utilizado.

    Posso exclui-lo? 

    terça-feira, 20 de março de 2018 17:44
  • Pode sim.

    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    terça-feira, 20 de março de 2018 19:28
  • Juliano.

    Muito obrigado pela ajuda. Valeu mesmo!!

    terça-feira, 20 de março de 2018 19:38