1

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

我正在尝试制作一个显示下载状态的进度条。我写的和我看到的所有其他人完全相同(当然不同的下载网址:https ://dl.dropboxusercontent.com/.../update.xml?token_hash=SOME_HASH&dl=1 )

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

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

当您创建 winform 表单时,我正在使用:System.Net 和所有默认“使用”。

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";
    }
}

这是从使它工作的人那里得到的,但它仍然对我不起作用!(简而言之编程:D)

任何帮助将不胜感激,在此先感谢!

编辑:我很抱歉我之前不够清楚。该文件甚至没有下载,这就是问题所在。但无论如何它现在已经修复了。

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

4

1 回答 1

3

尝试更改您的 DownloadFileAsync 命令行:

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

...看看是否有帮助。

于 2013-05-28T16:18:49.097 回答