Скачивание 2 файлов из интернета - C#
Формулировка задачи:
Здравствуйте. Проблема такая есть 2 файла которые нужно скачать и поле это-го выполнить какое либо действие.
Есть код который по идее так и делает, но выполнение какого либо действия начинается как раз после скачивания первого файла. Программа не дожидается скачивания второго файла. Подскажите где неправильно?
private void download //Скачиваем видео
{
try
{
string fileNameAudio = "temp.mp3";
if (File.Exists(fileNameAudio) != true)// если файла нет то просто скачиваем
{
WebClient client = new WebClient();
client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted);
string link = w;
string downloadFileName = System.IO.Path.GetFileName("temp.mp3");
client.DownloadFileAsync(new Uri(link), savedirName + @"" + downloadFileName);
}
else// если файл есть, удаляем и скачиваем новый
{
File.Delete(fileNameAudio);
WebClient client = new WebClient();
client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted);
string link = w;
string downloadFileName = System.IO.Path.GetFileName("temp.mp3");
client.DownloadFileAsync(new Uri(link), savedirName + @"" + downloadFileName);
//client.DownloadFileAsync(new Uri(link), @"c:" + downloadFileName);
}
string fileNamevideo = "temp.mp4";//к примеру... файл.zip замените названием того что скачиваете
if (File.Exists(fileNamevideo) != true)// если файла нет то просто скачиваем
{
WebClient client = new WebClient();
client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
string link = b;
string downloadFileName = System.IO.Path.GetFileName("temp.mp4");
client.DownloadFileAsync(new Uri(link), savedirName + @"" + downloadFileName);
}
else// если файл есть, удаляем и скачиваем новый
{
File.Delete(fileNamevideo);
WebClient client = new WebClient();
client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
string link = b;
string downloadFileName = System.IO.Path.GetFileName("temp.mp4");
client.DownloadFileAsync(new Uri(link), savedirName + @"" + downloadFileName);
}
}
catch
{
}
}
void client_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
{//выполнение какого либо действия по окончанию скачивания
ThreadPool.QueueUserWorkItem(new WaitCallback(DoWork), "");
}Решение задачи: «Скачивание 2 файлов из интернета»
textual
Листинг программы
WebClient web = new WebClient();
// Первый файл
string filePath = Path.Combine(savedirName, "temp.mp3");
if (File.Exists(filePath)) File.Delete(filePath);
await web.DownloadFileTaskAsync("http://example.com/temp.mp3", filePath);
// Второй файл
filePath = Path.Combine(savedirName, "temp.mp4");
if (File.Exists(filePath)) File.Delete(filePath);
await web.DownloadFileTaskAsync("http://example.com/temp.mp4", filePath);
// Все файлы скачаны
DoSomething();