0

我目前正在用 C# 做一个补丁程序,但是有一个有趣的错误。在代码中,所有链接和文件名都有一个循环,程序需要下载它们。代码:(fájlNév = 文件名,letöltött = 下载,összes = 全部,JelenlegiLetöltés = CurrentDownload,állás = 状态)

<!-- language: lang-c# -->
    private void button1_Click(object sender, EventArgs e)
    {
        WebClient myWebClient = new WebClient();
        string[] remoteUrl = new string[4] { "https://www.dropbox.com/s/62tt9w194xefk7t/", "https://www.dropbox.com/s/spni307vmk4zng9/", "https://www.dropbox.com/s/fsa29pelfwgk5ha/", "https://www.dropbox.com/s/mcn0wy2te4zqj1i/" };

        string[] fájlNév = new string[4] { "alut.dll", "DevIL.dll", "fltkdll.dll", "glew32.dll" };
        string fájlNévAlap = "BlackBox.dll", WebResource = null;

        int letöltött = 0;
        int össz = remoteUrl.Length;

        for (int i = 0, x = 0; i < remoteUrl.Length && x < fájlNév.Length; i++, x++)
        {
            WebResource = remoteUrl[i] + fájlNév[x];
            letöltött++;
            // MessageBox.Show(letöltött.ToString());
            jelenlegiLetöltés.Text = fájlNév[x]; 
            myWebClient.DownloadFile(WebResource,fájlNév[x]);
            double állás = letöltött / össz * 100;
            progressBar.Value = Convert.ToInt32(állás);
        }

所以,问题是,程序只下载第一个文件(4次),其他3个文件只是第一个文件的重命名版本。有人可以说是什么问题吗?

谢谢,汤姆科

这是显示错误的图像:(http://img11.imageshack.us/img11/9339/erroraz.png如您所见,所有文件大小都等于第一个文件的大小)

4

1 回答 1

0

我刚刚尝试将这段代码复制粘贴到 LINQPad 中并运行它(进行了一些小的改动,主要是重命名变量以便我可以轻松阅读它们),并注意到正在下载的“文件”是一个 HTML 转储......那是什么你也看到了吗?

乍一看,您使用的简单 URI 似乎不足以用作下载链接 - 该 HTML blob 中的链接具有额外的查询字符串参数,如哈希等。

HTML 中的示例链接:

https://dl.dropbox.com/s/62tt9w194xefk7t/alut.dll?token_hash=AAHQmybYdR44TRrS9bWQWV7jlZBzZQ-mmmjNy1Kv_qR4cg&amp;dl=1
于 2013-02-21T18:24:57.343 回答