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 に答える