因此,我试图将FTP服务器上的目录中的多个文件下载到本地目录中,我已经找到了如何仅下载一个文件,但是我不知道如何下载多个文件。
FtpWebRequest request =
(FtpWebRequest)WebRequest.Create(ip.Text + "/mods/");
request.Credentials = new NetworkCredential(user.Text, pass.Text);
request.Method = WebRequestMethods.Ftp.DownloadFile;
using (Stream ftpStream = request.GetResponse().GetResponseStream())
using (Stream fileStream = File.Create(directory.Text + @"\mods\"))
{
byte[] buffer = new byte[10240];
int read;
while ((read = ftpStream.Read(buffer, 0, buffer.Length)) > 0)
{
fileStream.Write(buffer, 0, read);
Console.WriteLine("Downloaded {0} bytes", fileStream.Position);
}
[每当我仅使用/mods/
目录时,都会出现错误,提示WebClient Exception
。
[每当我使用/mods/example_file.txt
时,它都会成功下载。
所以我的目标是,如何将整个/mods/
目录下载到我的计算机。
我已经在互联网上搜索并阅读了多个帖子,但似乎无法弄清楚。
我也是C#的初学者,所以很可能我做错了。
How to transfer multiple files from FTP server to local directory using C#?的可能副本
总结:c#和.net框架(或任何其他框架)改变了FTP服务器和通信协议的基本性质。在FTP中,您没有命令“在DIR X下获得一切”,而是必须列出目录的内容,并根据您的要求来请求特定文件。
您可以遍历目录的内容并分别列出每个文件,如果您正在寻找更高级的行为(例如并发等),则可以使用框架特定的功能(异步编程和多线程等)来实现。