Загрузить каталог файлов с помощью WebClient
Я искал и искал и не могу найти способ сделать это. У меня есть файлы в каталоге, который я хочу загрузить. Имена файлов постоянно меняются, поэтому я не могу загрузить их по имени. Вот что я попробовал.
using (WebClient client = new WebClient())
{
client.Credentials = new NetworkCredential("User", "Password");
foreach (var filePath in files)
client.UploadFile("ftp://site.net//PICS_CAM1//", "STOR", @"PICS_CAM1\");
}
Но я получаю ошибку компилятора:
Имя "файлы" не существует в текущем контексте
Все, что я исследовал, говорит, что это должно работать.
У кого-нибудь есть хороший способ загрузить каталог файлов через WebClient
?
2 ответа
Вы должны определить и установить files
, Если вы хотите загрузить все файлы в определенный локальный каталог, используйте, например, Directory.EnumerateFiles
,
Так же address
аргумент WebClient.UploadFile
должен быть полный URL-адрес целевого файла, а не просто URL-адрес целевого каталога.
IEnumerable<string> files = Directory.EnumerateFiles(@"C:\local\folder");
using (WebClient client = new WebClient())
{
client.Credentials = new NetworkCredential("username", "password");
foreach (string file in files)
{
client.UploadFile(
"ftp://example.com/remote/folder/" + Path.GetFileName(file), file);
}
}
Я думаю, что ваша загрузка веб-клиента будет работать нормально. Ваша проблема в том, что ваша переменная files
не входит в сферу.
Вы должны опубликовать больше своего кода, чтобы мы могли лучше видеть