如何确保我下载的文件已完成?

时间:2017-03-15 17:36:51

标签: c# file download webclient

我有这个应用程序,当我按下按钮时,我可以从互联网上下载某些文件。 但是..我不知道如何确保文件实际上已完成下载。

我目前正在使用下载文件的旧WebClient方法

    using (WebClient client = new WebClient())
    {
        client.DownloadFileAsync(new System.Uri(requestUrl), combinedPaths);
    }

由于下载功能非常简单直接,因此无需显示更多代码。 我需要弄清楚如何跟踪您正在下载的文件以查看它已下载了多少,例如1/100%.. 我有一个非常好的ISP,下载速度为250 Mb / s,所以我很难看到它是否真的已经完成了。

2 个答案:

答案 0 :(得分:4)

你可以发起WebClient.DownloadFileCompleted事件并用它做点什么:

client.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadFileCallback);

要了解下载的状态,您可以订阅另一个事件处理程序:

client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(DownloadProgressCallback);

答案 1 :(得分:3)

WebClient有一个名为DownlaodFileCompleted的事件处理程序,可用于在文件下载完成时触发:

myWebClient.DownloadFileCompleted += DownloadCompleted;

public static void DownloadCompleted(object sender, AsyncCompletedEventArgs e)
{
    Console.WriteLine("Success");
}