Verbindung ftp-server mit Zugangsdaten

Ich Schreibe ein Programm, welches einen ftp-server mit Zugangsdaten. Ich bin beim abrufen der Verzeichnisliste vom server, aber wenn ich auf die Zeile:

string line = reader.ReadLine();

die Zeichenfolge, die ich bekomme, enthält nur : "Can' T open \"host:/lib1\"."

Wenn ich versuche eine andere Linie, die nächste Ausnahme wird geworfen: Der Remoteserver hat einen Fehler zurückgegeben: (550) Datei nicht verfügbar (z.B. Datei nicht gefunden, kein Zugriff).

Weiß ich sicher (mit einem anderen ftp-Anwendung), 'lib1' - Verzeichnis existiert auf dem ftp-server und meine Benutzerdaten (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 vor Ort das problem?

  • Eine mehr Allgemeine Frage zu bekommen, ein directory-listing vom FTP-server in C#: stackoverflow.com/questions/3298922/...
  • verwenden Sie benutzerdefinierte Gültigkeitsprüfung des Zertifikats finden Sie unter stackoverflow.com/questions/5109752/...
  • Diese Frage ist ziemlich unklar - sind Sie einfach Fragen, für ein Weg, um eine Verbindung zu einem FTP-server mit Zugangsdaten, oder für uns zum Debuggen von diesem code? Sind Sie offen für Lösungen, die die Verwendung von libraries wie FluentFTP? Ist das Lesen der ersten Zeile geben Sie ein Falsches Ergebnis (das, was Sie sagen, in Ihrem zweiten Satz) oder eine exception zu werfen (was Sie bedeuten, wenn Sie sagen, dass die zweite ReadLine Aufruf wirft eine weitere Ausnahme)? Es gibt zu viel unfixably falsch hier, ich versuche, die Abstimmung zu schließen.
  • Ich werde die Abstimmung zu schließen, ist diese Frage off-topic, denn es ist nicht genau klar, was schief läuft und wie es scheint, kann etwas, das sehr spezifisch auf die OPs-Umgebung oder auf den server mit denen Sie verbunden sind. Als solche, es wäre schwer zu beantworten, endgültig und wahrscheinlich würde nicht eine Hilfe, um jemand anderes in der Zukunft.
  • Das einzige, was ich nicht sehen im code ist, wo Sie hängen die port-Nummer an Ihre IP-Adresse in die request-Uri? Ich bin mir nicht 100% sicher, das ist das Problem, sondern einfach durch einen Blick auf das, was du gepostet hast, ein Teil der Fehler, den Sie zurück bekam sah so aus: "host:/lib1" das lässt es so erscheinen die host-und Dickdarm wurden in Ihren Uri, aber keine port-Nummer nach dem Doppelpunkt. Also, vielleicht das Problem ist einfach das format der request-Uri?
InformationsquelleAutor Shlomit | 2011-01-03
Schreibe einen Kommentar