從 Web 伺服器下載檔案

從 Internet 上下載檔案是你可能構建的幾乎所有應用程式所需的非常常見的任務。

為此,你可以使用“ System.Net.WebClient ”類。

使用使用模式最簡單的用法如下所示:

using (var webClient = new WebClient())
{
    webClient.DownloadFile("http://www.server.com/file.txt", "C:\\file.txt");
}

此示例的作用是使用 using 來確保完成後正確清理 Web 客戶端,並將命名資源從第一個引數中的 URL 傳輸到第二個引數中的本地硬碟驅動器上的指定檔案引數。

第一個引數是“ System.Uri ” 型別,第二個引數是“ System.String ” 型別

你也可以使用這個函式是一個非同步形式,以便它在後臺執行下載,同時你的應用程式開始使用其他東西,以這種方式使用呼叫在現代應用程式中是非常重要的,因為它有助於保持使用者介面的響應。

當你使用 Async 方法時,你可以連線允許你監視進度的事件處理程式,以便你可以更新進度條,如下所示:

var webClient = new WebClient())
webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
webClient.DownloadFileAsync("http://www.server.com/file.txt", "C:\\file.txt");

但是,如果你使用 Async 版本,請記住一個重要的一點,那就是“在’使用’語法中使用它們時要非常小心”。

原因很簡單。一旦呼叫下載檔案方法,它將立即返回。如果你在 using 塊中有這個,你將返回然後退出該塊,並立即處理類物件,從而取消正在進行的下載。

如果使用使用方式執行非同步傳輸,則務必保留在封閉塊內,直到傳輸完成。