Estoy escribiendo un programa que usa un servidor ftp con credenciales. Estoy tratando de recuperar la lista de directorio del servidor, pero cuando llego a la línea:Conectando servidor ftp con credenciales
string line = reader.ReadLine();
la cadena que contiene sólo consigo: "No se puede abrir \" host:/LIB1 \ ""
Si trato de obtener otra línea, se lanza la siguiente excepción: El servidor remoto devolvió un error: (550) Archivo no disponible (por ejemplo, archivo no encontrado, sin acceso).
Estoy seguro (usando otra aplicación ftp) que el directorio 'lib1' existe en el servidor ftp y mis credenciales (nombre de usuario y contraseña) son correctas.
Aquí está mi código:
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();
}
y lo uso como sigue:
FTPClient ftpClient = new FTPClient("user1", "pass1", "192.168.2.110", 21);
string dirList = ftpClient.GetDirectoriesList("/lib1");
¿Alguien puede detectar el problema?
Una cuestión más general sobre cómo obtener un listado de directorios de un servidor FTP en C#: http://stackoverflow.com/questions/3298922/how-to-list -directory-contents-with-ftp-in-c –
use la validación personalizada del certificado, consulte https://stackoverflow.com/questions/5109752/use-c-sharp-to-get-an-smtp-server- certificado – syed
Esta pregunta no está clara, ¿está simplemente pidiendo una forma de conectarse a un servidor FTP con credenciales, o para que podamos depurar este código específico? ¿Está abierto a soluciones que usan bibliotecas, como [FluentFTP] (https://github.com/robinrodricks/FluentFTP)? ¿Leer la primera línea le da un resultado incorrecto (lo que dice en su segunda oración) o arroja una excepción (lo que implica cuando dice que la segunda llamada 'ReadLine' arroja * otra * excepción)? Aquí hay demasiado unfxably wrong; Voy a votar para cerrar. –