Ладно, я тут в растерянности. Я пытаюсь загрузить файл 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);
}