进度条显示下载状态

时间:2013-05-28 16:03:50

标签: c#

我正在制作一个可以下载更新的winform程序。

我正在尝试创建一个显示下载状态的进度条。我写的和我看到的其他人一样 (不同的下载网址:https://dl.dropboxusercontent.com/.../update.xml?token_hash=SOME_HASH&dl=1

我认为它是正确的链接,因为它是直接下载链接。

我不知道这是否重要,但下载update.xml文件的表单不是我的主要表单。我看到的其他人,在主窗体中编写了代码。我的主表单有一个“检查更新”按钮,该按钮打开更新表单。

我在创建winform表单时使用:System.Net和所有默认的“usings”。

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)

任何帮助将不胜感激,提前谢谢!

编辑:对不起,我之前并不清楚。该文件甚至没有下载,这就是问题所在。但现在它已经修好了。

如果我需要更多帮助,我会记住这一点。

1 个答案:

答案 0 :(得分:3)

尝试使用以下命令更改DownloadFileAsync命令行:

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

......看看是否有帮助。