Мне необходимо скачать из сети папку с большим количеством файлов в ней. Соответственно, я не могу скачивать каждый файл по одиночке, но как иначе? Я пробовал DownloadData метод, но он, естественно не помог.
Сама операция должна выглядеть вот так (последний вариант с DownloadData):
await Task.Run(() => webClient.DownloadDataCompleted += new DownloadDataCompletedEventHandler(Completed));
await Task.Run(() => webClient.DownloadProgressChanged += new
DownloadProgressChangedEventHandler(ProgressChanged));
await Task.Run(() => Directory.CreateDirectory(@"C:/Users/" + Environment.UserName + "/AppData/Roaminп/" + season));
await Task.Run(() => webClient.DownloadDataAsync(new Uri("http://mysite.ru/season/" + season), @"C:/Users/" + Environment.UserName + "/AppData/Roaming/" + season));
WebClientустарел, замените его наHttpClient. 2. Не как, ибо должен быть список файлов, который вы будете хранить у себя и по которому будете производить операцию загрузки. Если сервер такое не дает, то как вы собираетесь качать то о чем у вас нет информации? Если же сервер дает такой список, то считывайте его и циклом по очереди качайте чтоб ускорить - качайте пару файлов из списка за раз. 3. Что за ужас у вас тут сTask.Run()? Если задача нуждается в асинхронности, то ее и следует запускать, вот к примеру зачем вам асинхронно создавать директорию? Так что не пихайте async везде!