Fehler beim Abspielen, Anzeigen und Öffnen einer Datei auf einem FTP Server

  • VB.NET

Es gibt 24 Antworten in diesem Thema. Der letzte Beitrag () ist von MytosVisualBasic.

    Fehler beim Abspielen, Anzeigen und Öffnen einer Datei auf einem FTP Server

    Hallo, bin neu hier

    Hoffentlich bin ich im richtigen Forum, ansonsten bitte verschieben.

    Also ich hab folgendes Problem: Ich hab ein Programm geschrieben dass die Elemente von einem FTP-Server anzeigt, nun soll es möglich sein, Bilder in einer PictureBox anzeigen zu lassen, Musik mit dem Mediaplayer abspielen oder andere Elemente mit dem Standard Programm auszuführen. Bei Dateien von dem Computer geht das Problemlos nur mit den Dateien vom Server geht das nicht.

    Ich hoffe ich hab das jetzt gut erklärt

    EDIT: Ich hab mich nochmal erkundigt und nun festgestellt, dass das nicht geht. Dazu muss ich die Datei erst downloaden und wie mach ich das?
    mit

    Quellcode

    1. locFTP.DownloadAsync(ListBoxLocal.SelctedItem, "Textbox.text in der der Pfad im Format \...\...\ steht")
    geht das nicht der Brauch dann Format /.../.../.../ doch weder die Listbox macht das so, noch steht der Pfad so in der Textbox (Der Benutzer wählt ein Ordner und der Pfad wird in der Textbox angezeigt

    EDIT: LocFTP ist von FTPLib

    Danke im Voraus

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „MytosVisualBasic“ ()

    Das klappt nicht, er zeigt mir die selbe Fehlermeldung an. Wenn ich den Mauszeiger draufhalte zeigt er mir den Pfad im Format \...\...\

    Hier mein Code:

    Quellcode

    1. locFTP.DownloadAsync(My.Settings.FTP_Server & "/" & ListBox.SelectedItem, textbox.Text.Replace("/", "\"))


    EDIT: Der Server ist im Format /.../.../
    Vielleicht ist es sinnvoll, Du erstellst zunächst die richtige URL für den Serverzugriff, dann ist es nämlich egal, ob da "\" oder "/" drin steht:

    VB.NET-Quellcode

    1. Dim url = New URI(My.Settings.FTP_Server & "/" & ListBox.SelectedItem, textbox.Text)
    2. MessageBox.Show(url.ToString)
    Da haste außerdem die Möglichkeit, Dich von der Richtigkeit dieser URL zu überzeugen.
    Dies nicht zu tun ist ein außerordentlich beliebter Anfängerfehler.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo,

    @RodFromGermany
    Ich hab es probiert nur hab ich diesen code:

    Quellcode

    1. Dim url = New URI(My.Settings.FTP_Server & "/" & ListBox.SelectedItem, textbox.Text)MessageBox.Show(url.ToString)


    In diesen Code verändert

    Quellcode

    1. Dim url = New URI(My.Settings.FTP_Server & "/" & ListBox.SelectedItem)MessageBox.Show(url.ToString)


    Ergebniss: Wenn ich den Button drücke erscheint eine MsgBox die den Server + den Namen des ausgewählten Items anzeigt. Im format /.../.../.../
    Siehe Anhang "MytosVisualBasic01"

    @petaod
    Nach diesem Code erscheint die Fehlermeldung in Anhang "MytosVisualBasic02"

    Quellcode

    1. locFTP.DownloadAsync(My.Settings.FTP_Server & "/" & ListBox1.SelectedItem, textbox1.Text.Replace("/", "\"))

    Soweit ich folgenkonnte sollte " textbox1.Text.Replace("/", "\") " dafür sorgen dass die \ in / umgedreht werden dies ist nicht der fall! Wenn ich meinen Mauszeiger auf das endsprechende Feld halte erscheint der Pfad im Format \...\...\
    Bilder
    • MytosVisualBasic01.png

      14,35 kB, 287×156, 132 mal angesehen
    • MytosVisualBasic02.PNG

      19,75 kB, 449×254, 133 mal angesehen

    MytosVisualBasic schrieb:

    Nach diesem Code erscheint die Fehlermeldung
    Das ist der Plan:

    VB.NET-Quellcode

    1. Dim url = New URI(My.Settings.FTP_Server & "/" & ListBox.SelectedItem, textbox.Text)
    2. locFTP.DownloadAsync(url)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    Das ist der Plan:

    Quellcode

    1. Dim url = New URI(My.Settings.FTP_Server & "/" & ListBox.SelectedItem, textbox.Text)
    2. locFTP.DownloadAsync(url)

    Das Funktioniert nicht weil für locFTP.DownloadAsync müssen 2 Argumente abgegeben werden, als erstes der Pfad auf dem Server dann der Lokale
    Siehe Fehlerliste

    Ebenfalls muss die Angabe ein String sein und sie kann nicht von URI nach String konvertiert werden
    Bilder
    • MytosVisualBasic03.PNG

      18,89 kB, 853×168, 147 mal angesehen
    Im ersten Argument brauchst du den Code von oben, und im zweiten nimmst du dann den "normalen" Pfad mit den "\".

    Edit:
    wenns String sein muss dann schreib url.toString

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

    MytosVisualBasic schrieb:

    Das Funktioniert nicht weil
    ich nicht wusste, dass ich hier im Forum keinen Anspruch auf fertigen C&P-Code habe. :D
    Manchmal muss man tatsächlich wissen, dass zum Download eine Source und eine Destination erforderlich ist.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo,
    ich habs jetzt probiert mit

    VB.NET-Quellcode

    1. Dim url_Server = New Uri(My.Settings.FTP_Server & "/" & Listbox1.SelectedItem) Dim url_lokal = New Uri(textbox1.Text) locFTP.DownloadAsync(url_Server.ToString, url_lokal.ToString)



    Die Pfade sind jetzt eigl. im richtigen Format, also wenn ich mit dem Mauszeiger rüber geh aber der Fehler bleibt der selbe dass es dass falsche format hätte

    url_lokal ist nun im format file:///C:/.../.../...
    kann dass ein problem darstellen?

    @RodFromGermany
    Sorry fals es so rüber kam das ich ein Fertigen code haben wollte, sollte nicht so sein. Wollte nur um hilfe für mein Problem bitten :rolleyes:

    MytosVisualBasic schrieb:

    VB.NET-Quellcode

    1. Dim url_lokal = New Uri(textbox1.Text)
    Wer sagt solch?
    Du postest hier im Hauptforum, und da erwarten wir, dass derartige "Kleinigkeiten" klar sind.
    Klick mal mit der Maus auf DownloadAsync und drück auf F1. Da wirsd Dir geholfen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    Klick mal mit der Maus auf DownloadAsync und drück auf F1. Da wirsd Dir geholfen.
    Sry aber da ist nichts zu finden, ich bin neu hier im Forum und wusst noch nicht genau bescheid wies lang geht. Meinetwegen darf das Thema gerne in den Bereich für Kleinigkeiten und Grundlagen verschoben werden!
    Ich weiß das ich so manch falsch gemacht hab, aber ich möcht dich trotzdem bitten mir bei meiner "kleinigkeit" weiterzuhelfen
    ich hab schon viele stunden damit verbracht im Internet nach einer Lösung zu gucken, leider nichts gefunden ehrlich!

    RodFromGermany schrieb:

    VB.NET-Quellcode

    1. Dim url_lokal = New Uri(textbox1.Text)

    Was ist denn daran Falsch?
    Das:

    MytosVisualBasic schrieb:

    url_lokal ist nun im format file:///C:/.../.../...
    Nimm als Destination einfach textbox1.Text

    VB.NET-Quellcode

    1. locFTP.DownloadAsync(url_Server, textbox1.Text)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich hab das ja schon probiert, aber wenn ich das so mache ist ist der Lokale Pfad wieder im Format \...\...\...\, was FTPLib nicht erlaubt
    darum hab ich das ja so gemacht

    VB.NET-Quellcode

    1. Dim url_Server As New Uri(My.Settings.FTP_Server & "/") Dim dateiname As String dateiname = ListBox.SelectedItem Dim url_lokal As New Uri(textbox.Text) locFTP.DownloadAsync(url_Server.ToString & dateiname, url_lokal.ToString)


    Weil dort ist der Lokale und der Server Pfad im Format /.../.../
    Nur Funktioniert es trotzdem nicht! und ich versteh nicht warum!

    Server und Lokaler Pfad müssen im Format /.../.../ sein

    und wenn ich die Textbox gleich als lokalen Pfad ein gebe ist diese Voraussetzung nicht erfüllt

    Mal so am Rande: Wie krieg ich das hin das mein Quellcode den ich im Forum eingebe nicht einzeilig ist sondern mehrzeilig, so wie ich ihn auch eingebe?

    Wenn Du meinen Beitrag mal genau liest, steht da drin, dass Du als 2. Parameter von DownloadAsync(...) keine Uri, sondern einen String nehmen sollst.
    Gleichbedeutend mit Nicht URI.ToString.
    Da wir hier im Hauptforum sind, erwarte ich von Dir, dass bei einem Fehler "\" ==> "/" Du dies mit Dir inzwischen bekanntem Code korrigierst und fertich.
    Schließlich sind wir hier ja nicht da, um den Inhalt Deiner TextBox zu korrigieren, das ist Dein Bier.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich hab es ja schon probiert mit

    VB.NET-Quellcode

    1. Dim url_Server As New Uri(My.Settings.FTP_Server)
    2. locFTP.DownloadAsync(url_server.ToString & listbox1.SelectedItem, textbox1.Text.Replace("\", "/"))



    Aber da hab ich doch geschrieben das es nicht geht, und es geht jetzt genauso wenig. Und ich versteh nicht warum ?(
    Er gibt mir immernoch die Fehlermeldung aus, dass der Pfad das Falsche Format hätte

    Ich versuch jetzt mal für mich den Code zu erklären ihr sagt mir wenn ich was Falsch mache ok?

    Bei

    VB.NET-Quellcode

    1. Dim url_Server As New Uri(My.Settings.FTP_Server & "/")

    Leg ich eine Variable mit dem Namen url_Server an. Diese beinhaltet eine URI die aus My.Settings.FTP_Server gewonnen wird

    Hier

    VB.NET-Quellcode

    1. locFTP.DownloadAsync(url_server.ToString & listbox1.SelectedItem, textbox1.Text.Replace("\", "/"))


    wird zuerst mit locFTP auf die FTPLib zurückgegriffen, der Befehl DownloadAsync wird gegeben. Als Argumente hat er zuerst die Vorherfestgelegte Variable die die Server URL beinhaltet + das markierte Element in der Listbox. Das 2. Argument das der Lokale Pfad sein soll setzt sich zusammen aus der Textbox die den PFad im Format \...\...\ beinhaltet die aber dann eiglendlich durch den Befehl Replace umgetauscht werden müssten.

    Was ist hier Falsch? ?( :?:

    MytosVisualBasic schrieb:

    Was ist hier Falsch?
    1. Parameter Uri (nicht aber URI.ToString)
    2. Parameter String.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Du musst nur einn wenig die Initiative ergreifen und die Tipps von uns konstruktiv umsetzen. Wir sind hier nicht in der 2. Klasse, wo alles vom Lehrer diktiert werden muss.
    Aus

    MytosVisualBasic schrieb:

    VB.NET-Quellcode

    1. Dim url_Server As New Uri(My.Settings.FTP_Server)
    2. locFTP.DownloadAsync(url_server.ToString & listbox1.SelectedItem, textbox1.Text.Replace("\", "/"))
    mach

    VB.NET-Quellcode

    1. Dim url_Server As New Uri(My.Settings.FTP_Server & listbox1.SelectedItem)
    2. locFTP.DownloadAsync(url_server, textbox1.Text.Replace("\", "/"))
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!