2014-01-27 62 views
-1

我正在使用此;顯示下載BytesDownloaded/BytesTotal

using (WebClient webClient = new WebClient()) 
{ 
    string nversion = filenumber; 

    webClient.OpenRead("http://127.0.0.1/Update/update" + filenumber + ".exe"); 
    Int64 bytes_total = Convert.ToInt64(webClient.ResponseHeaders["Content-Length"]); 
    string updatelength = Convert.ToString((bytes_total/1024).ToString()); 
    label2.Text = "File size:" + updatelength + "KB"; 

    label1.Text = "Downloading Update..."; 
    webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged); 
    webClient.DownloadFileAsync(new Uri(@"http://127.0.0.1/Update/update" + filenumber + ".exe"), "update" + filenumber + ".exe"); 
    webClient.DownloadFileCompleted += (sender, e) => Extract(nversion); 
} 

但是下載凍結先下載後,該應用程序響應,但它不下載更新的休息..

如果我評論的webClient.OpenRead它工作得很好。

我還需要顯示動態下載的字節。

感謝

回答

0

不要OpenRead明確地打開該文件。相反,只需撥打電子郵件DownloadFileAsync即可 - DownloadProgressChanged處理程序具有UploadProgressChangedEventArgs.TotalBytesToSend,您可以向用戶展示(以及BytesSent甚至ProgressPercentage)。