使用 WebClient 将文件目录上传到 FTP 服务器
Upload directory of files to FTP server using 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\");
}
但是我遇到编译器错误:
The name 'files' does not exist in the current context
我研究过的所有内容都表明这应该有效。
有没有人有通过WebClient
上传文件目录的好方法?
我认为您的 Web 客户端上传可以正常工作。您的问题是您的变量 files
不在范围内。
您需要post更多的代码,这样我们才能看得更清楚
您必须定义和设置 files
。如果您想上传某个本地目录中的所有文件,例如使用 Directory.EnumerateFiles
.
此外,WebClient.UploadFile
的 address
参数必须是目标文件的完整 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);
}
}
有关递归上传,请参阅:
Recursive upload to FTP server in C#
我找了又找,找不到办法。我在要上传的目录中有文件。文件名不断变化,所以我无法按文件名上传。这是我试过的。
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\");
}
但是我遇到编译器错误:
The name 'files' does not exist in the current context
我研究过的所有内容都表明这应该有效。
有没有人有通过WebClient
上传文件目录的好方法?
我认为您的 Web 客户端上传可以正常工作。您的问题是您的变量 files
不在范围内。
您需要post更多的代码,这样我们才能看得更清楚
您必须定义和设置 files
。如果您想上传某个本地目录中的所有文件,例如使用 Directory.EnumerateFiles
.
此外,WebClient.UploadFile
的 address
参数必须是目标文件的完整 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);
}
}
有关递归上传,请参阅:
Recursive upload to FTP server in C#