【发布时间】:2020-11-24 14:30:17
【问题描述】:
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverUrl);
request.Method = WebRequestMethods.Ftp.ListDirectory;
var response = (FtpWebResponse)request.GetResponse();
Stream rStream = response.GetResponseStream();
StreamReader reader = new StreamReader(rStream);
string fileNames = reader.ReadToEnd();
List<string> ls = fileNames.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries).ToList();
for (int i = 0; i < ls.Count; i++)
Console.WriteLine(ls[i]);
此方法仅列出指定 serverUrl 目录中存在的文件。我想列出 FTP 服务器的所有文件。谁能给我建议?
【问题讨论】:
-
您正在寻找
dir -Rftp 命令(大写的R 很重要)。不知道它在 .net 中是什么,但这就是你想要的。它列出了目录中的所有文件以及所有子目录及其文件 -
您如何看待递归算法?
Ftp.ListDirectory命令只列出一个文件夹的内容。它还列出了子目录。您也可以使用递归列出子目录中的文件。但是,如果您想不出一种显示路径(包括子目录)的好方法,它可能会变得一团糟。
标签: c# visual-studio winforms ftpwebrequest ftpwebresponse