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

How do I make sure that the file I download has finished?

我有这个应用程序,它允许我在按下按钮时从 Internet 下载某些文件。 但是..我不知道如何确保文件实际上已经完成下载。

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

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

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

您可以触发 WebClient.DownloadFileCompleted 事件并用它做一些事情:

client.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadFileCallback);

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

client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(DownloadProgressCallback);

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

myWebClient.DownloadFileCompleted += DownloadCompleted;

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