Ftp Upload und Download mit Backgroundworker

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von theowik.

    Ftp Upload und Download mit Backgroundworker

    Hallo zusammen,

    ich habe ein Problem:

    Ich möchte Dateien auf einen Ftp-Server hochladen und wieder runterladen können. Da die Dateien recht groß sind und die Form immer einfriert wenn ich Up- bzw Downloade würde ich den Vorgang gerne mit einem Backgroundworker durchführen, da Application.DoEvents() nicht so schön ist! Ein weiteres Problem ist, dass ich nicht weiß wie ich den Upload in chunks zerlege, um den Uploadstatus abzufragen.

    Wäre nett wenn mir jemand helfen kann
    hab mit dem backgroundworker zumindest den download hinbekommen nur weiß ich nicht wie ich den fortschritt in die progressbar kriege

    VB.NET-Quellcode

    1. Private Sub BackgroundWorker2_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker2.DoWork
    2. Try
    3. Dim reqDownload As FtpWebRequest = DirectCast(FtpWebRequest.Create(New Uri(test)), FtpWebRequest)
    4. reqDownload.Credentials = New NetworkCredential(FTPInfo.username, FTPInfo.password)
    5. reqDownload.Method = WebRequestMethods.Ftp.DownloadFile
    6. Using response As System.Net.FtpWebResponse = CType(reqDownload.GetResponse, System.Net.FtpWebResponse)
    7. Using responseStream As IO.Stream = response.GetResponseStream
    8. Using fs As New IO.FileStream("C:\Users\User\Desktop\Kalimba.mp3", IO.FileMode.Create)
    9. Dim buffer(2047) As Byte
    10. Dim read As Integer = 0
    11. Do
    12. read = responseStream.Read(buffer, 0, buffer.Length)
    13. fs.Write(buffer, 0, read)
    14. BackgroundWorker2.ReportProgress(XXX???XXX)
    15. Loop Until read = 0
    16. responseStream.Close()
    17. fs.Flush()
    18. fs.Close()
    19. End Using
    20. responseStream.Close()
    21. End Using
    22. response.Close()
    23. End Using
    24. Catch
    25. End Try
    26. End Sub
    Versuch doch einfach mal post#4 als zielführenden Hinweis aufzufassen.

    Oder ist dir die Dokumentation des VisualStudios nicht bekannt, und du kannst dem Hinweis nicht nachgehen? dann Visual-Studio richtig nutzen


    ach ja, und Bitte VB-Tag benutzen - aber richtig

    und noch: Bei Using-Blöcken brauchste Response.Close, Stream.Close etc. nicht aufrufen - das ist im Using-Block inbegriffen.