2013-05-28 323 views
1

我正在製作一個可以下載更新的winform程序。使進度條顯示下載狀態

我想做一個進度條,顯示下載的狀態。我寫了與我看到的其他所有內容完全相同的文章 (diffrent download url of of course:https://dl.dropboxusercontent.com/.../update.xml?token_hash=SOME_HASH&dl=1

我想它是正確的鏈接,因爲它的直接下載鏈接。

我不知道這是否重要,但下載update.xml文件的表單不是我的主要形式。我看到的其他人,以主窗體的形式編寫了代碼。我的主表單有一個「檢查更新」按鈕,並且該按鈕打開更新表單。

我正在使用:System.Net和所有默認的「使用」當您創建一個winform窗體。

public partial class Update : Form 
{ 
    public Update() 
    { 
     InitializeComponent(); 
    } 

    private void Update_Load(object sender, EventArgs e) 
    { 
     WebClient client = new WebClient(); 
     string desktop = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); 
     client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged); 
     client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted); 
     client.DownloadFileAsync(new Uri("https://dl.dropboxusercontent.com/s/.../update.xml?token_hash=...&dl=1"), desktop); 
    } 

    void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e) 
    { 
     progressBar1.Maximum = (int)e.TotalBytesToReceive/100; 
     progressBar1.Value = (int)e.BytesReceived/100; 
    } 

    void client_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e) 
    { 
     label2.Text = "Download Completed"; 
    } 
} 

這是從somone誰使它的工作,但它仍然不適合我! (編程簡而言之:D)

任何幫助將不勝感激,在此先感謝!

編輯:我很抱歉,我以前不夠清楚。該文件甚至沒有下載,這就是問題所在。但無論如何它現在已經修復了。

我會記住,如果我需要更多的幫助。

+4

您不應在示例代碼中包含真實憑據(例如'client.DownloadFileAsync'調用中的'token_hash'查詢參數)。 –

+0

@OndrejTucny,儘管它是真實的,但是不起眼,:) – David

+2

「它不起作用」是完全沒有幫助的。什麼不行?你有沒有發生異常,什麼都沒有發生,是不是更新,直到完成,或什麼?請詳細描述發生的情況以及應該發生的情況。 – Servy

回答

3

試着改變你的DownloadFileAsync命令行用:

client.DownloadFileAsync(new Uri("http://download.thinkbroadband.com/10MB.zip"), desktop + "test.zip"); 

...,看看有沒有什麼幫助。

+0

壓縮文件已損壞,但xml文件工作得很好。謝謝你! – MasterXD

+0

問題是我需要爲下載的文件編寫一個名稱以及它是什麼格式。 – MasterXD

+0

是的,如果你看看http://www.thinkbroadband.com/download.html的最後一段,你會發現它是用於測試目的的假zip文件。我只是想告訴你解決你的代碼的方法;) –