使用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上传文件目录的好方法?

您必须定义和设置files 。 如果要上载某个本地目录中的所有文件,请使用Directory.EnumerateFiles

此外, WebClient.UploadFileaddress参数必须是目标文件的完整URL,而不仅仅是目标目录的URL。

 IEnumerable 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不在范围内。

您需要发布更多代码,以便我们可以更好地查看