Download di file dal Web
DownloadFile(String, String) DownloadFile(Uri, String)
Il metodo accetta due parametri, la posizione del file nel web e la destinazione nel disco locale dove vogliamo salvare il file.
Metodo sincrono di Download
Il codice mostra come eseguire il download sincrono al thread corrente, in questo modo il metodo blocca il thread principale fino al completamento del download o al verificarsi di un errore.
WebClient webClient = new WebClient(); webClient.DownloadFile("http://giordanogiaccaglia.altervista.org/files/img1.jpg", @"c:\img1.jpg");
Metodo asincrono di Download
Per eseguire il download senza bloccare l’applicazione possiamo utilizzare il metodo DownloadFileAsync(Uri, String), al quale possiamo impostare il relativo event handlers per intercettare il progresso del download ed il completamento dello stesso.
private void button2_Click(object sender, EventArgs e) { WebClient webClient = new WebClient(); webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed); webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged); webClient.DownloadFileAsync(new Uri("http://giordanogiaccaglia.altervista.org/files/img1.jpg"), @"c:\img1.jpg");</pre> } private void ProgressChanged(object sender, DownloadProgressChangedEventArgs e) { progressBar1.Value = e.ProgressPercentage; } private void Completed(object sender, AsyncCompletedEventArgs e) { MessageBox.Show("Download completato!"); }