【问题标题】:How do I make sure that the file I download has finished?如何确保我下载的文件已完成?
【发布时间】:2017-03-15 17:36:50
【问题描述】:

我有这个应用程序,当我按下按钮时,它允许我从互联网上下载某些文件。 但是..我不知道如何确保文件已经真正完成下载。

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

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

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

【问题讨论】:

标签: c# file download webclient


【解决方案1】:

您可以触发WebClient.DownloadFileCompleted 事件并对其进行处理:

client.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadFileCallback);

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

client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(DownloadProgressCallback);

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 啊!没有考虑事件处理程序!谢谢!
    • 我很高兴 :) @NicoRiff 实际上击败了我,所以他应该得到答案。
    猜你喜欢
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-27
    相关资源
    最近更新 更多