Добрый день, помогите разобраться как правильно сделать загрузку файлов по коллекции ссылок. Есть вот такой вот список:
public List <string> MusicFilesList()
{
var links = new List<string>();
links.Add("http://mysite.com/music.mp3");
links.Add("http://mysite.com/music.mp3");
links.Add("http://mysite.com/music.mp3");
links.Add("http://mysite.com/music.mp3");
links.Add("http://mysite.com/music.mp3");
links.Add("http://mysite.com/music.mp3");
return links;
}
На форме есть прогресс бар и кнопка, которая начинает загрузку.
private void downloadMusic_Click(object sender, EventArgs e)
{
foreach(var link in MusicFilesList())
{
Downloader(link, );
}
}
И метод который скачивает
private void Downloader(string link, string filepath)
{
using (WebClient wc = new WebClient())
{
wc.DownloadProgressChanged += Wc_DownloadProgressChanged;
wc.DownloadFileCompleted += Wc_DownloadFileCompleted;
wc.DownloadFileAsync(new Uri(link), filepath);
}
}
Как мне указать куда скачивать? Если один файл скачать, то я использую SaveFileDialog. А для большого количества файлов не могу сделать, что бы просто указал папку куда и он сам качал.
Update. Вот так у меня происходит загрузка одного файла.
private void downloadPhoto_Click(object sender, EventArgs e)
{
using (var dialog = new SaveFileDialog())
{
dialog.Filter = "MusicFile|*.mp3";
dialog.Title = "Сохранить как";
dialog.FileName = fileName;
var result = dialog.ShowDialog();
if(result == DialogResult.OK)
{
Downloader(musicLink, dialog.FileName);
}
}
}
С Folder вот что я соорудил, но качает он один файл всего лишь.
private void downloadAlbum_Click(object sender, EventArgs e)
{
using (var dialog = new FolderBrowserDialog())
{
if (dialog.ShowDialog() == DialogResult.OK)
{
foreach (var link in MusicFilesList())
{
fileName = $"{musiclist.SelectedItem.ToString().Split('/')[6]}";
using (var wc = new WebClient())
{
wc.DownloadFile(link.ToString(), dialog.SelectedPath + "/" + fileName);
}
}
}
}
}
Не внимательно писал код.
private void downloadAlbum_Click(object sender, EventArgs e)
{
using (var dialog = new FolderBrowserDialog())
{
if (dialog.ShowDialog() == DialogResult.OK)
{
foreach (var link in MusicFilesList())
{
fileName = $"{link.ToString().Split('/')[6]}";
using (var wc = new WebClient())
{
wc.DownloadFile(link.ToString(), dialog.SelectedPath + "/" + fileName);
}
}
}
}
}
В таком случае качает все как положено.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Разрабатывал проект и в какой-то момент он перестал компилитьсяТак как студия не пишет по-человечески, в чём конкретно по её мнению ошибка,...
Имеется обычный и серверный клиент для многопользовательского чата(простой и в консоли), также есть ВДС(сервер) с установленной на нем Windows...