FtpWebRequest через HTTP прокси - неполный список файлов - PullRequest
1 голос
/ 30 ноября 2011

Я пытаюсь перечислить файлы в каталоге, используя FTP в C #, у меня есть следующий код:

StringBuilder result = new StringBuilder();
var reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(host + "/"));
reqFTP.Credentials = new NetworkCredential(user, pass);
reqFTP.Proxy = new WebProxy(proxy, proxyport)
{
    Credentials = new NetworkCredential(proxyuser, proxypass, proxyuserdomain)
};
reqFTP.KeepAlive = false;
reqFTP.UsePassive = false;
reqFTP.UseBinary = false;
reqFTP.Method = WebRequestMethods.Ftp.ListDirectoryDetails; //also tried ListDirectory
using (var response = reqFTP.GetResponse())
{
    using (var reader = new StreamReader(response.GetResponseStream()))
    {
        string line = reader.ReadLine();
        while (line != null)
        {
            result.Append(line);
            result.Append("\n");
            line = reader.ReadLine();
        }
    }
}

Возвращает HTML-ответ, подобный следующему:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">


FTP Listing of /foo/bar/ at my.ftpste.com



FTP Listing of /foo/bar/ at my.ftpste.com

Parent Directory
Nov 01 2011 17:27 4356 File1.txt Oct 22 2010 00:00 275051 File2.txt Oct 25 2010 00:00 1875 File3.txt Oct 26 2010 00:00 2553 File4.txt

Обратите внимание, что ответ завершен, включая закрывающий тег html.

Проблема в том, что этот список файлов неполон. Когда я открываю тот же URL в Internet Explorer, используя тот же прокси-сервер, я вижу почти идентичный HTML, за исключением того, что в списке больше файлов например, File5.txt, File6.txt). То же самое верно, когда я использую обычный FTP-клиент, такой как filezilla.

Не могу понять, почему это происходит, есть идеи?

...