从互联网下载文件是几乎所有可能构建的应用程序都需要执行的非常常见的任务。
为此,可以使用“ System.Net.WebClient”类。
下面显示了使用“ using”模式的最简单用法:
using (var webClient = new WebClient()) { webClient.DownloadFile("http://www.server.com/file.txt", "C:\\file.txt"); }
此示例的作用是使用“使用”来确保完成后正确清理您的Web客户端,然后将命名资源从第一个参数中的URL传输到第二个本地硬盘驱动器中的命名文件中范围。
第一个参数的类型为“ System.Uri”,第二个参数的类型为“ System.String”
您还可以使用此函数为异步形式,以便它关闭并在后台执行下载,而您的应用程序仍在进行其他操作时,以这种方式使用调用在现代应用程序中非常重要,因为它有助于使您的用户界面保持及时响应。
使用异步方法时,可以连接事件处理程序以监视进度,例如,可以更新进度条,如下所示:
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块中包含此代码,则将返回然后退出该块,并立即处理该类对象,从而取消正在进行的下载。
如果您使用“使用”方式执行异步传输,请确保留在封闭的块中,直到传输完成。