C# WebClient未报告0Kb文件

C# WebClient未报告0Kb文件,c#,wpf,C#,Wpf,我正在编写一个应用程序,从我们的服务器下载.xml文件,并从中检索一些数据 该文件是我们部门使用的零件的数据 有些文件是0Kb,这意味着我们没有这部分的数据 现在我的问题是Webclient DownloadFileCompleted事件在完成下载0Kb文件时没有触发 这是我的密码: private void Get_Tool_Model() { if (System.Net.NetworkInformation.NetworkInterface.GetIsNet

我正在编写一个应用程序,从我们的服务器下载.xml文件,并从中检索一些数据

该文件是我们部门使用的零件的数据

有些文件是0Kb,这意味着我们没有这部分的数据

现在我的问题是Webclient DownloadFileCompleted事件在完成下载0Kb文件时没有触发

这是我的密码:

    private void Get_Tool_Model()
    {
        if (System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable())
        {
            download_Tool_Model = true;
            using (WebClient wc = new WebClient())
            {
                wc.UseDefaultCredentials = true;
                wc.DownloadProgressChanged += (o, e) =>
                {
                    double bytesIn = double.Parse(e.BytesReceived.ToString());
                    double totalBytes = double.Parse(e.TotalBytesToReceive.ToString());
                    double percentage = bytesIn / totalBytes * 100;
                    Dispatcher.Invoke(() => {
                        txt_progress.Text = "Downloaded " + e.BytesReceived + " of " + e.TotalBytesToReceive;
                        progress.Value = e.ProgressPercentage;
                    });
                };
                wc.DownloadFileCompleted += new AsyncCompletedEventHandler(Wc_DownloadFileCompleted);
                wc.DownloadFileAsync(
                    // Param1 = Link of file
                    new System.Uri(path),
                    // Param2 = Path to save
                    "C:\\Tool_Model.xml"
                );
            }
        }
    }

    private void Wc_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
    {
        download_completed = true;
    }

谢谢您的帮助。

当存在0kb文件时,Web服务器返回什么?(如200、204或404)?可能是以不同方式处理0kb文件的更好方法,因为不需要下载它们(在这种情况下,下载可能永远不会“完成”)。是否下载文件并保存到磁盘?乍一看,您的代码与下面的代码非常相似:在这种情况下,如果downloadcompleted没有启动,请标记并检查文件是否在磁盘上。@Stefan-我正在清理它们,问题是我无法下载、验证和删除它们,每次文件被使用时,我都会收到。@Andy-是的,文件正在保存到磁盘。我找到了一个解决方案,可以在不出现Webclient DownloadFileCompleted事件的情况下增加进度条。