2013-05-28 5 views
1

Я делаю программу winform, которая может скачивать обновления.Make progress bar display Статус загрузки:

Я пытаюсь создать индикатор прогресса, который показывает статус загрузки. Я написал то же самое, что и все остальные, которые я видел (скачать бесплатно url ofcourse: https://dl.dropboxusercontent.com/.../update.xml?token_hash=SOME_HASH&dl=1)

Я полагаю, что у него правильная ссылка для использования, так как ее прямая ссылка для скачивания.

Я не знаю, важно ли это, но форма, которая загружает файл update.xml, не является моей основной формой. Другие люди, которых я видел, написали код в основной форме. В моей основной форме есть кнопка «Проверить обновления», и эта кнопка открывает форму обновления.

Я использую: System.Net и все по умолчанию «usings» при создании формы 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)

Любая помощь будет оценена, спасибо заранее!

EDIT: Извините, что раньше я не был достаточно ясен. Файл даже не загрузился, вот и проблема. Но в любом случае это исправлено.

Я буду помнить об этом, если мне потребуется дополнительная помощь.

+4

Вы не должны включать реальные учетные данные в примерный код (например, параметр запроса token_hash в вызове 'client.DownloadFileAsync'). –

+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-файл для тестирования. Я просто хотел показать вам способ исправить ваш код;) –