Reputation: 109
I have searched and searched and cannot find a way to do this. I have files in a directory I want to upload. The file names change constantly so I cannot upload by file name. Here is what I have tried.
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\");
}
But I am getting a compiler error:
The name 'files' does not exist in the current context
Everything I have researched says this should work.
Does anyone have a good way to upload a directory of files via WebClient
?
Upvotes: 2
Views: 9129
Reputation: 202474
You have to define and set the files
. If you wanted to upload all files in a certain local directory, use for example Directory.EnumerateFiles
.
Also the address
argument of WebClient.UploadFile
has to be a full URL to a target file, not just a URL to a target directory.
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);
}
}
For a recursive upload, see:
Recursive upload to FTP server in C#
Upvotes: 4
Reputation: 770
I think your web client upload will work fine. Your issue is that your variable files
is not in scope.
You need to post more of your code so we can see better
Upvotes: 0