2016-08-11 58 views
1

ListDirectory發送到FTP服務器,但僅返回來自FTP的前2000個項目。添加SSL不會返回更多結果。WebRequestMethods.Ftp.ListDirectory結果僅限於2000個條目

是否有另一個圖書館我應該用來獲得完整的結果?

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(); 
      } 
     } 
    } 
} 

回答

0

這顯然是服務器上的配置問題。請參見下面的文章:
http://www.inmotionhosting.com/support/website/general-server-setup/incrrease-file-display-limit
Viewing more than 10,000 files on a FTP file server?

基本上,這些文章建議,要麼改變服務器的配置,讓您查看多個文件或文件整理成更窄的目錄,所以你可以更好地選擇哪些你想在任何給定的時間查看。

+0

它是託管服務無法更新的服務器上的全局設置。但我可以ssh獲得名單。 – juanvan

+0

你可以改變你的目錄結構,這樣個人目錄中的文件少於2000個嗎? – EJoshuaS

0

這幾乎不是客戶端問題。這可能是限制列表的FTP服務器。
您是否嘗試使用獨立(GUI)客戶端?

正如您所評論的那樣,您具有對服務器的SSH訪問權限,請嘗試使用SFTP協議而不是FTP(S)。 SFTP服務器可能沒有限制。