从 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 块中有这个,你将返回然后退出该块,并立即处理类对象,从而取消正在进行的下载。

如果使用使用方式执行异步传输,则务必保留在封闭块内,直到传输完成。