如何在C#中下载多个FTP文件[重复]

问题描述 投票:0回答:1

因此,我试图将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#的初学者,所以很可能我做错了。

c# ftp
1个回答
0
投票

How to transfer multiple files from FTP server to local directory using C#?的可能副本

总结:c#和.net框架(或任何其他框架)改变了FTP服务器和通信协议的基本性质。在FTP中,您没有命令“在DIR X下获得一切”,而是必须列出目录的内容,并根据您的要求来请求特定文件。

您可以遍历目录的内容并分别列出每个文件,如果您正在寻找更高级的行为(例如并发等),则可以使用框架特定的功能(异步编程和多线程等)来实现。

© www.soinside.com 2019 - 2024. All rights reserved.