3 Stimmen

Ftp-Programmierung in F#

Ich muss ein Programm in F# schreiben, das Dateien auf einen FTP-Server hochladen soll. Gibt es eine Bibliothek, die ich verwenden kann? Ich konnte im Internet nichts finden. Kann mir jemand den richtigen Weg zeigen? Wenn möglich, wäre etwas Beispielcode sehr hilfreich

11voto

Tim Robinson Punkte 51702

System.Net.WebRequest.Create funktioniert gut, wenn Sie ihm eine ftp:// URL geben.

Um Zugriff auf FTP-spezifische Funktionen (wie das Hochladen von Dateien) zu erhalten, müssen Sie Ihr WebRequest-Objekt in ein FtpWebRequest umwandeln.

0 Stimmen

Vielen Dank für deine Antwort, Tim. Wenn ich versuche, die WebRequest in FtpWebRequest zu konvertieren, erhalte ich den folgenden Fehler "Der Wert oder Konstruktor 'FtpWebRequest' ist nicht definiert". So versuche ich das Casting zu machen: let reqFTP: FtpWebRequest = (FtpWebRequest) (WebRequest.Create(uri)) Hast du irgendwelche Gedanken dazu?

1 Stimmen

Das ist C# Syntax, nicht F#. In F# möchte man: let reqFTP: FtpWebRequest = WebRequest.Create(uri) :?> FtpWebRequest

4voto

desco Punkte 16452

FtpWebRequest sollte die Sache erledigen.

0voto

Jan Bodnar Punkte 9701

Der integrierte FtpWebRequest ist veraltet. FluentFTP ist eine großartige Bibliothek, die regelmäßig aktualisiert wird.

#r "nuget: FluentFTP"

open FluentFTP

let ip = "45.33.2.79"
let username = "username"
let passwd = "s$cret"

let lpath = fsi.CommandLineArgs[1]
let rpath = fsi.CommandLineArgs[2]

let launch () =

    use con = new FtpClient(ip, username, passwd)
    con.Connect()

    let status =
        con.UploadFile(lpath, rpath, FtpRemoteExists.Overwrite, true, FtpVerify.Retry)

    match status with
    | FtpStatus.Success -> printfn "Datei erfolgreich hochgeladen"
    | FtpStatus.Failed -> printfn "Fehler beim Hochladen der Datei"
    | _ -> printfn "Übersprungen oder unbekannt"

launch ()

Das Programm lädt eine lokale Datei auf den FTP-Server hoch.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X