DownloadFileAsync не загружает файл, но завершенное событие запускается?
Хорошо, я в недоумении здесь. Я пытаюсь скачать файл JAR, а затем создать пакетный файл, который запускает его. Я был в состоянии загрузить этот файл однажды с моим кодом, но теперь завершенное событие запускается (я думаю, потому что код внутри него работает. Извините, я новичок в C#.), Но файл не загружается. Я добавил новую кнопку только с кодом загрузки, и файл был там, но он показывал 0KB. Ничего даже не появляется в Fiddler с моим текущим кодом. Я использую IP-адрес, чтобы пропустить проверку DNS, и я установил прокси в ноль. (Я где-то читал, что это мешает зависанию. Думаю, это было что-то в отношении автоопределения веб-прокси.) Я могу убедиться, что ссылки для скачивания (которые я не показываю здесь, если вам это не нужно) реальны и загружает файл, просто открывая его в веб-браузере. Во всяком случае, вот фрагмент моего кода:
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);
}
1 ответ
wc1.DownloadFileAsync(new Uri(...), @txtboxFolder.Text + "\\jarfile.jar", @"c:\jarfile.jar"););