Usuário com melhor resposta
Download por FTP com progress bar

Pergunta
-
Boa noite pessoal,
estou desenvolvendo um "downloader" que deve baixar os arquivos que eu postar no meu ftp e mostrar o andamento do download através de uma progress bar.
Estou usando o seguinte bloco de código
WebClient webClient = new WebClient(); DownloadProgress.Visibility = Visibility.Visible; lbMensagem.Visibility = Visibility.Visible; webClient.Credentials = new NetworkCredential("usuario", "senha"); webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(Progresso); webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadCompleto); webClient.DownloadFileAsync(new Uri("ftp://meusite.com.br/LatestVersion/teste.rar"), Path.Combine(PathHoldprint, "Teste.rar"));
O problema é que se eu tentar baixar do modo acima (pelo ftp) parece que o método DownloadProgressChanged não funciona direito, porque ele só alimenta a progress bar quando o download é finalizado, e se eu utilizar assim (um link qualquer da internet):
WebClient webClient = new WebClient(); DownloadProgress.Visibility = Visibility.Visible; lbMensagem.Visibility = Visibility.Visible; webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(Progresso); webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadCompleto); webClient.DownloadFileAsync(new Uri("http://www.meusite.com.br/downloadteste.rar"), Path.Combine(PathHoldprint, "Holdprint.zip"));
Fica tudo certinho.
Alguém sabe me dizer por que?
- Editado Jéferson Tavares segunda-feira, 21 de abril de 2014 22:38
Respostas
-
Olá estou usando WPF
Olá, desculpe a demora em responder...
Isso pode ser realmente um bug na classe WebClient. Contudo, existe um projeto open-source muito bom no Code Project de um Downloader de arquivos HTTP e FTP. Creio que você possa se basear nele:
MyDownloader: A Multi-thread C# Segmented Download Manager - CodeProject
O nível de complexidade com certeza é bem maior que usando a classe WebClient, mas é a melhor alternativa...
Herbert Lausmann
- Marcado como Resposta Jéferson Tavares segunda-feira, 19 de maio de 2014 12:55
Todas as Respostas
-
-
-
Olá estou usando WPF
Olá, desculpe a demora em responder...
Isso pode ser realmente um bug na classe WebClient. Contudo, existe um projeto open-source muito bom no Code Project de um Downloader de arquivos HTTP e FTP. Creio que você possa se basear nele:
MyDownloader: A Multi-thread C# Segmented Download Manager - CodeProject
O nível de complexidade com certeza é bem maior que usando a classe WebClient, mas é a melhor alternativa...
Herbert Lausmann
- Marcado como Resposta Jéferson Tavares segunda-feira, 19 de maio de 2014 12:55
-