2012-05-04 2 views
0

Я пытаюсь получить список файлов на сервереЗагрузка файлов с сервера

КОД:

string ftpUserID = "user"; 
string ftpPassword = "password"; 
string ftpServerIP = "192.###.###.###"; 
string remoteDirectory = @"\Update\UpdateTest"; 
string localDirectory = @"C:\Updates"; 

string[] downloadFiles; 
StringBuilder result = new StringBuilder(); 
WebResponse response = null; 
StreamReader reader = null; 

FtpWebRequest reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/" +  remoteDirectory)); 
reqFTP.UseBinary = true; 
reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword); 
reqFTP.Method = WebRequestMethods.Ftp.ListDirectoryDetails; 
reqFTP.EnableSsl = true; 
reqFTP.Proxy = null; 
reqFTP.KeepAlive = true; 
reqFTP.UsePassive = true; 
response = reqFTP.GetResponse(); 
reader = new StreamReader(response.GetResponseStream()); 

string line = reader.ReadLine(); 
while (line != null) 
{ 
    result.Append(line); 
    result.Append("\n"); 
    line = reader.ReadLine(); 
} 
result.Remove(result.ToString().LastIndexOf('\n'), 1); 
return result.ToString().Split('\n'); 

Я получаю ошибку WebException говоря «Не удается подключиться к удаленному серверу»

Это в результате ошибок в:

FtpWebRequest reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/" +  remoteDirectory)); 

Который бросает System.NotSuportedException на reqFTP.Content и reqFTP.PreAuthenticate детали думаю.

+0

Попробуйте 'reqFTP.EnableSsl = false;'? –

+0

FYI - у вас есть обратная и обратная косы в вашем конечном URL-адресе FTP. –

ответ

0

Вы упомянули, хотя это не видно в коде, что вы используете PreAuthenticate. Это не поддерживается для FTP.

Свойство PreAuthenticate предоставляется только для совместимости с другими реализациями классов WebRequest и WebResponse в соответствии с msdn.

Смежные вопросы