Sto scrivendo un programma che utilizza un server ftp con credenziali. Sto cercando di recuperare l'elenco di directory dal server, ma quando arrivo alla linea:Connessione server ftp con credenziali
string line = reader.ReadLine();
la stringa che ottengo contiene solo: "Impossibile aprire \" host:/lib1 \ ""
Se si tenta di ottenere un'altra riga, viene generata l'eccezione successiva: Il server remoto ha restituito un errore: (550) File non disponibile (ad es. File non trovato, nessun accesso).
So per certo (utilizzando un'altra applicazione ftp) che la directory 'lib1' esiste sul server ftp e le mie credenziali (nome utente e password) sono corrette.
Ecco il mio codice:
public class FTPClient
{
public string UserName { get; set; }
public string Password { get; set; }
public string IpAddress { get; set; }
public int Port { get; set; }
public FTPClient(string _userName, string _password, string _address, int _port)
{
UserName = _userName;
Password = _password;
IpAddress = _address;
Port = _port;
}
public void GetDirectoriesList(string _path)
{
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(new Uri("ftp://" +
IpAddress + _path));
request.UseBinary = true;
request.Method = WebRequestMethods.Ftp.ListDirectory;
request.Credentials = new NetworkCredential(UserName, Password);
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
string line = reader.ReadLine();
while (line!=null)
{
... //do something with line
line = reader.ReadLine();
}
...
reader.Close();
response.Close();
}
e lo uso come segue:
FTPClient ftpClient = new FTPClient("user1", "pass1", "192.168.2.110", 21);
string dirList = ftpClient.GetDirectoriesList("/lib1");
Qualcuno può individuare il problema?
Una domanda più generale su come ottenere un elenco di directory da un server FTP in C#: http://stackoverflow.com/questions/3298922/how-to-list -directory-content-with-ftp-in-c –
usa la convalida personalizzata del certificato, vedi https://stackoverflow.com/questions/5109752/use-c-sharp-to-get-an-smtp-server- certificato – syed
Questa domanda non è chiara: stai semplicemente chiedendo un modo per connettersi a un server FTP con credenziali o per eseguire il debug di questo codice specifico? Sei aperto a soluzioni che utilizzano librerie, come [FluentFTP] (https://github.com/robinrodricks/FluentFTP)? Leggere la prima riga ti dà un risultato errato (cosa dici nella tua seconda frase) o lanciare un'eccezione (cosa intendi quando dici che la seconda chiamata "ReadLine" lancia * un'altra * eccezione)? Qui c'è troppa insondabile sbagliata; Sto votando per chiudere. –