Download di file dal Web

ConnectionQuesto esempio mostra come eseguire il download di file dal web al disco locale utilizzando la classe WebClient con il metodo DownloadFile contenuti in System.Net.

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!");
}

Esempio: DownloadFile

Ti potrebbe interessare anche...