Ich schreibe ein Programm, das einen FTP-Server mit Anmeldeinformationen verwendet. Ich versuche, die Verzeichnisliste vom Server abgerufen werden, aber wenn ich auf die Linie erhalten:FTP-Server mit Anmeldeinformationen verbinden
string line = reader.ReadLine();
die Zeichenfolge, die ich enthält nur erhalten: host „Can not \ öffnen“: „“/lib1 \
Wenn ich versuche, eine andere Zeile zu erhalten, wird die nächste Ausnahme ausgelöst: Der Remote-Server hat einen Fehler zurückgegeben: (550) Datei nicht verfügbar (z. B. Datei nicht gefunden, kein Zugriff).
Ich weiß sicher (mit einer anderen FTP-Anwendung), dass 'lib1' Verzeichnis auf dem FTP-Server existiert und meine Zugangsdaten (Benutzername und Passwort) korrekt sind.
Hier ist mein Code:
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();
}
Und ich benutze es wie folgt:
FTPClient ftpClient = new FTPClient("user1", "pass1", "192.168.2.110", 21);
string dirList = ftpClient.GetDirectoriesList("/lib1");
Kann jemand das Problem erkennen?
Eine allgemeine Frage über ein Verzeichnis von einem FTP-Server in C# Auflistung bekommen: http://stackoverflow.com/questions/3298922/how-to-list -directory-contents-with-ftp-in-c –
Verwenden Sie die benutzerdefinierte Überprüfung des Zertifikats, siehe https://stackoverflow.com/questions/5109752/use-c-sharp-to-get-an-smtp-server- Zertifikat – syed
Diese Frage ist ziemlich unklar - fragen Sie einfach nach einer Möglichkeit, eine Verbindung zu einem FTP-Server mit Anmeldeinformationen herzustellen oder diesen spezifischen Code zu debuggen? Sind Sie offen für Lösungen mit Bibliotheken wie [FluentFTP] (https://github.com/robinrodricks/FluentFTP)? Liefert das Lesen der ersten Zeile ein falsches Ergebnis (was Sie im zweiten Satz sagen) oder eine Ausnahme (was Sie meinen, wenn Sie sagen, dass der zweite 'ReadLine' Aufruf * eine andere * Ausnahme auslöst)? Hier ist zu viel Unfixierbares falsch; Ich stimme zu schließen. –