1

将 发送ListDirectory到 FTP 服务器,但仅从 FTP 返回前 2000 个项目。添加 SSL 并没有返回更多结果。

我应该使用另一个库来获得完整的结果吗?

ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(OnValidateCertificate);
ServicePointManager.Expect100Continue = true;

FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://XXXX");
request.Method = WebRequestMethods.Ftp.ListDirectory;
request.Credentials = new NetworkCredential("User", "Password");
request.EnableSsl = true;

ServicePoint sp = request.ServicePoint;
Console.WriteLine("ServicePoint connections = {0}.", sp.ConnectionLimit);
sp.ConnectionLimit = 1;

using (var response = (FtpWebResponse)request.GetResponse())
{
    using (var stream = response.GetResponseStream())
    {
        using (var reader = new StreamReader(stream, true))
        {
            string line = reader.ReadLine();
            while (line != null)
            {
                ListFiles.Add(line);
                line = reader.ReadLine();
            }
        }
    }
}
4

2 回答 2

0

这几乎不是客户端问题。可能是限制列表的 FTP 服务器。
您是否尝试过使用独立 (GUI) 客户端?

正如您评论说您可以通过 SSH 访问服务器,请尝试使用 SFTP 协议而不是 FTP(S)。SFTP 服务器可能没有限制。

于 2016-08-12T07:39:52.497 回答
0

这显然是服务器上的配置问题。请参阅以下文章:
http://www.inmotionhosting.com/support/website/general-server-setup/incrrease-file-display-limit
在 FTP 文件服务器上查看超过 10,000 个文件?

基本上,这些文章建议要么更改服务器配置以允许您查看更多文件,要么将文件分类到更窄的目录中,这样您就可以在任何给定时间更有选择性地查看要查看的文件。

于 2016-08-11T15:29:01.937 回答