FTP server auf Datei prüfen

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

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von LMS.Crafter.

    FTP server auf Datei prüfen

    Guten Abend, Forum

    Bei meinem Projekt möchte ich prüfen, ob eine Datei bereits auf dem Server vorhanden ist, dies gelingt auch:

    VB.NET-Quellcode

    1. Try
    2. My.Computer.Network.DownloadFile("http://Webadresse/online.txt", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\ordnername\" & "online.txt")
    3. TextBox1.Text = System.IO.File.ReadAllText(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\ordnername\" & "online.txt")
    4. My.Computer.FileSystem.DeleteFile(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\ordnername\" & "online.txt")
    5. If TextBox1.Text.Contains("<") Then
    6. Label1.Text = "offline"
    7. TextBox1.Text = ""
    8. Else
    9. Label1.Text = "online"
    10. End If
    11. Catch ex As Exception
    12. MsgBox("error")
    13. End Try


    Zur Klärung vielleicht zur Zeile 7: selbst wenn die Datei nicht vorhanden ist, lädt mein Programm eine Textdatei namens online.txt runter, in der dann n bisschen php zeug drin steht, deshalb diese If abfrage :)

    Mein Problem dabei ist nun, dass ich diese Abfrage all Minute machen möchte, sich aber die ganze Form dabei jedesmal für etwa 7 Sekunden aufhängt, was schon recht nervig ist, gibt es eine Möglichkeit, dass dies separat gemacht wird, ich habe irgendwo mal was von async gelesen. Ich bin noch am erlernen der Grundlagen, weshalb ich sehr froh wäre, wenn ihr mir, sofern ihr eine Idee habt, mir diese anhand eines Codebeispiels erklären könntet.


    Vielen Dank und LG :)
    Du kannst die Datei oder auch nur den Inhalt mit einem Webclient asyncron runterladen dann friert dir der GUI-Thread auch nicht immer kurz ein. Schau hier ich Forum mal danach, gibt einige Threads dazu.


    VB.NET-Quellcode

    1. Try
    2. My.Computer.Network.DownloadFile("http://Webadresse/online.txt", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\ordnername\" & "online.txt")
    3. Catch ex As Exception
    4. MsgBox("error")
    5. End Try

    So testest du ernsthaft ob die Datei existiert? Was wenn beim download mal die Verbingung abreist und deswegen der download nicht klappt oder der Server kurz mal nicht erreichbar ist, evtl. ist die Datei aber doch da. Beim Webclient kanst du wenigsten an den Fehlercode kommen.(z.B. 404, Seite nicht vorhanden) Dann wüsstest du definitiv ob die Datei auf'm Server liegt oder nicht.
    Cloud Computer? Nein Danke! Das ist nur ein weiterer Schritt zur totalen Überwachung.
    „Wer die Freiheit aufgibt, um Sicherheit zu gewinnen, wird am Ende beides verlieren.“
    Benjamin Franklin

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „NoIde“ ()

    Ja, ich bin mir sicher es gibt viel bessere Arten der Kommunikation 2er Rechner, doch so funktioniert es auch, ich schreibe den übermittelten Text in ein .php oder .txt auf dem Server
    und der andere Rechner überprüft dann, was drinnen steht :)

    Zudem gibt es eine Datei online, welche vom Server gelöscht wird, sobald ein Rechner offline ist. Deshalb prüfen beide ständig, ob die Datei noch auf dem Server vorhanden ist und somit eine "Verbindung" besteht :)
    Das obige Problem habe ich so gelöst indem es die Datei nicht mehr herunterlädt sondern nur den Inhalt dieser ausliest, ist nichts drin, dann ist die Datei nicht online :)
    Hallo

    In diesem Thread habe ich Code gepostet welcher die Datein am FTP Server zählt. Sollte ganz leicht für dein Vorhaben umzuschreiben sein.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##