DownloadFileAsync не загружает файл, но запускается завершенное событие?

Ладно, я тут в растерянности. Я пытаюсь загрузить файл jar, а затем создать пакетный файл, который его запускает. Раньше мне удавалось загрузить этот файл с помощью моего кода, но теперь завершенное событие срабатывает (я думаю, потому что код внутри него работает. Извините, я новичок в С#.) мгновенно, но файл не загружается. Я добавил новую кнопку, не содержащую ничего, кроме кода загрузки, и файл был там, но он просто отображался как 0 КБ. Ничего даже не отображается в Fiddler с моим текущим кодом. Я использую IP-адрес, чтобы пропустить проверку DNS, и устанавливаю для прокси значение null. (Я где-то читал, что это предотвращает зависание. Я думаю. Это было что-то об автоопределении веб-прокси.) Я могу проверить, что ссылки для скачивания (которые я не показываю здесь, если они вам не нужны) реальны и загружает файл, просто открывая его в веб-браузере. Во всяком случае, вот фрагмент моего кода:

        WebClient wc1 = new WebClient();
        wc1.DownloadFileCompleted += new AsyncCompletedEventHandler(wc1_DownloadFileCompleted);
        wc1.DownloadProgressChanged += new DownloadProgressChangedEventHandler(wc1_DownloadProgressChanged);

        if (cmboboxVersion.SelectedText == ...)
        {
            stsprgsbar.Style = ProgressBarStyle.Continuous;

            stslblStaus.Text = "Downloading files...";

            wc1.DownloadFileAsync(new Uri(...), @txtboxFolder.Text + "\\jarfile.jar");

            FileStream fs = new FileStream(@txtboxFolder.Text + "\\batfile.bat", FileMode.Create, FileAccess.ReadWrite);

            StreamWriter sw = new StreamWriter(fs);
            sw.WriteLine(...);
            sw.Close();

            fs.Close();


        }
        else if (cmboboxVersion.SelectedText == ...)
        {
            stsprgsbar.Style = ProgressBarStyle.Continuous;

            stslblStaus.Text = "Downloading files...";

            wc1.DownloadFileAsync(new Uri(...), @txtboxFolder.Text + "\\jarfile.jar");

            FileStream fs = new FileStream(@txtboxFolder.Text + "\\batfile.bat", FileMode.Create, FileAccess.ReadWrite);

            StreamWriter sw = new StreamWriter(fs);
            sw.WriteLine(...);
            sw.Close();

            fs.Close();
        }
        else
        {
            stsprgsbar.Style = ProgressBarStyle.Continuous;

            stslblStaus.Text = "Downloading files...";

            wc1.DownloadFileAsync(new Uri(...), @txtboxFolder.Text + "\\jarfile.jar");

            FileStream fs = new FileStream(@txtboxFolder.Text + "\\batfile.bat", FileMode.Create, FileAccess.ReadWrite);

            StreamWriter sw = new StreamWriter(fs);
            sw.WriteLine(...);
            sw.Close();

            fs.Close();
        }
    }

    public void wc1_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
    {
        stsprgsbar.Value = e.ProgressPercentage;
    }

    public void wc1_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
    {
        string BatPath = @txtboxFolder.Text + "\\batfile.bat";
        stsprgsbar.Style = ProgressBarStyle.Marquee;
        stslblStaus.Text = "Generating files...";
        ProcessStartInfo pro = new ProcessStartInfo(BatPath);
        //pro.CreateNoWindow = true;
        Process.Start(pro);

    }

person user1522456    schedule 17.08.2012    source источник


Ответы (1)


person    schedule
comment
Хорошо, кажется, это то, что я хочу. Мой код делает неправильное имя файла, а что нет, но я могу разобраться. Но только быстрый вопрос, КАК это заставляет это работать? РЕДАКТИРОВАТЬ: Итак, мой код для выбора ссылки для загрузки не работает, поэтому он всегда загружал последний файл, но, делая то, что вы только что сделали, это чудесным образом сработало. И вот я его убрал, а он ЕЩЕ работает. Спасибо, в любом случае. - person user1522456; 18.08.2012
comment
он загружает jarfile.jar на ваш локальный компьютер msdn.microsoft.com/en-us /библиотека/ms144197.aspx - person Hassan Boutougha; 18.08.2012
comment
УХ ТЫ. Я тупой. Я устанавливал имя файла и никуда его не помещал. И код, который я использовал для последней загрузки, был испорчен до того, как я разместил его здесь. Спасибо большое. - person user1522456; 18.08.2012
comment
Пожалуйста, часто бывает, что у кого-то есть увольнение, самое главное - быть настойчивым, мой друг ;-) - person Hassan Boutougha; 18.08.2012