我在C#开发方面相对较新。
我正在尝试使用WebClient实现下载程序。
我所做的就是这个 -
private void startDownloadFile(string url)
{
try
{
downloadProgress.Value = 0;
downloadProgress.Visibility = Visibility.Visible;
WebClient webClient = new WebClient();
//Update UI with download progress
webClient.DownloadProgressChanged += wcDownloadingString;
webClient.DownloadStringAsync(new Uri(url), downloadFileLocation);
}
catch (Exception e)
{
// Stop the timer.
timer.Enabled = false;
MessageBox.Show(e.ToString());
bDownload.IsEnabled = true;
downloadProgress.Visibility = Visibility.Hidden;
}
}
private void wcDownloadingString(object sender, DownloadProgressChangedEventArgs e)
{
downloadProgress.Value = e.ProgressPercentage;
}
所以,我应该在进度条中获取用户界面更新,但我不会这样做,因为e.ProgressPercentage
总是返回0
。
它返回0
因为,WebClient.TotalBytesToReceive
始终返回-1
。
我的完整代码可以在这里找到 -
https://github.com/abrarjahin/wpf-Download-Manager-With-Async-Task
有人可以帮忙吗?
我去了这个地方 -
但是从那里找不到任何解决方案。
而且,服务器总是返回文件大小,因为我正在实现一个Web源下载器,并且它无法在任何地方工作,所以服务器没有问题。