繁体   English   中英

使用 C# 中的 FtpWebRequest 统计/列出 FTP 目录中的所有文件

[英]Count/list all files that are in FTP directory with FtpWebRequest in C#

我正在尝试进行 C# 编程,但由于某种原因,我一直在尝试计算上传到我的 ftp 服务器上的所有文件。 我已经尝试过 stackoverflow 中的一些代码

代码:

FtpWebRequest request = (FtpWebRequest)WebRequest.Create(server);
request.Method = WebRequestMethods.Ftp.ListDirectory;

request.Credentials = new NetworkCredential(user, password);
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
string names = reader.ReadToEnd();

reader.Close();
response.Close();

return names.Split(
    new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).ToList();

他确实连接到了服务器,但只是在他能找到的一个文件中向我展示了那里。

在这里,您可以将列表视为字符串:

他找到了一个文件:

上传到我的服务器上的所有文件:

这是我的列表(我不明白为什么有这么多索引):

您的代码对我有用,但@Ozug 可能是正确的,您的服务器无法使用 CRLF 行结尾。

一个更健壮(也更高效)的实现是:

List<string> names = new List<string>();
while (!reader.EndOfStream)
{
    names.Add(reader.ReadLine());
}

它甚至应该处理 CR 行尾。

另请参阅解析 WebRequestMethods.Ftp.ListDirectoryDe​​tails FTP 响应的 C# 类

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM