FTP-Fehler 550 bei leerem Verzeichnis

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von jvbsl.

    FTP-Fehler 550 bei leerem Verzeichnis

    Guten Morgen,

    beschäftige mich mit FTP-Zugriff.
    Wähle ich leere Verzeichnisse bekommme ich die Fehlermeldung 550.
    Gehe ich hier auf Weiter, greift die Try/Catch Anweisung.
    Aber warum geschieht das nicht sofort?

    VB.NET-Quellcode

    1. Me.FTPServer = CType(FtpWebRequest.Create(URL), FtpWebRequest)
    2. Me.FTPServer.Credentials = Me.Anmeldedaten
    3. Me.FTPServer.Method = WebRequestMethods.Ftp.ListDirectory
    4. Me.FTPServer.EnableSsl = True
    5. Me.FTPServer.UseBinary = True
    6. Me.FTPServer.UsePassive = True
    7. ServicePointManager.ServerCertificateValidationCallback = AddressOf AcceptAllCertifications
    8. Try
    9. Me.FTPResponse = Me.FTPServer.GetResponse ' Fehler 550 - Datei nicht verfügbar
    10. Catch ex As Exception
    11. Datenzeile = Me.DT_Verzeichnis.NewRow
    12. Datenzeile("Name") = "Verzeichnis ist leer."
    13. Me.DT_Verzeichnis.Rows.Add(Datenzeile)
    14. FTPService.DGV_Server.Enabled = True
    15. Me.ServerzeichnisInfo = AnzVerzeichnis.ToString & " Verz. / " & AnzDatei.ToString & " Datei(en)"
    16. Me.Aktiv = False
    17. Exit Sub
    18. End Try
    Gruß Markus
    Wenn ich das Richtig verstanden habe ist das wohl eine fehlerhafte herangehensweise vom .Net Framework aus
    Jedoch solltest du ListDirectoryDetails abrufen können, dann bekommst du gleich detaillierte Informationen und das dürfte nie leer sein, da dieses auch einen Verweis zu sich selbst(".") und dem übergeordneten Pfad("..") enthält.
    Das Problem dabei ist, dass du den kompletten Response erstmal richtig parsen musst und auch ".." und "." z.B. rausfiltern

    stackoverflow.com/questions/70…ctorydetails-ftp-response
    Jenachdem ob es darum geht möglichst viel zu Unterstützen würd ich tatsächlich auf die Library zurückgreifen, ansonsten eben den einfachen ParseCode mit RegEx...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---