Upload mit ProgressBar, mit WinSCP.dll

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Upload mit ProgressBar, mit WinSCP.dll

    Hallo Leute,

    Ich habe da eine kleine frage, und zwar möchte ich bei einen Upload & Download eine Progressbar durchladen lassen.
    Eigentlich ganz einfach, aber ich benutze die WinSCP.dll weil ich eine TLS Verbindung zum FTP aufbaue und darüber Down & Uploade.

    Ich bin der Meinung, dass es möglich ist, aber ich bekomme es nicht zusammen gebaut.

    Wäre nett von einer mir bei helfen würde =)

    Zu WinSCP >> Klick <<


    MFG Azu
    _-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-_

    MFG

    _-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-_
    Was ich so sehe gibts da ein FileTransferProgressEvent.
    Schau dir da mal bitte die Eventargs an (e).

    Edit://
    winscp.net/eng/docs/library_filetransferprogresseventargs
    Hey,


    Das mit "FileTransferProgressEventArgs" habe ich auch gesehn, komme da genau so nicht weiter, des wegen
    denke ich ja auch das es möglich ist.

    nur wie ?


    mfg azu
    _-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-_

    MFG

    _-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-_
    e.OverallProgress gibt dir ja den kompletten Fortschritt in einer Kommazahl an. (0-1).
    Das rechnest du jetzt einfach so um, dass du den Wert in der Progressbar anzeigen kannst, bzw. fügst anschließend zu dem FileTransferProgresEvent einfach die Umrechnung und Zuweisung der neuen Progressbarvalue hinzu.
    Nein.
    Da ich mir die .dll nicht herunterladen werden.
    Da musst du selber durch, sollte ur etwas Mathematik sein.
    Hey,


    Mfg azu

    habe folgendes "gebaut"

    VB.NET-Quellcode

    1. Imports System
    2. Imports WinSCP
    3. Public Class form3
    4. Private Sub form3_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    5. ' Einstellungen()
    6. End Sub
    7. Public NotInheritable Class FileTransferProgressEventArgs
    8. Inherits EventArgs
    9. Dim sessionOptions As New SessionOptions
    10. Dim WithEvents Upload As Session
    11. Private Sub Einstellungen()
    12. Try
    13. ' Setup session options
    14. 'Dim sessionOptions As New SessionOptions
    15. With sessionOptions
    16. .Protocol = Protocol.Ftp
    17. .FtpSecure = FtpSecure.ExplicitTls
    18. .FtpMode = FtpMode.Passive
    19. .HostName = "ABCDERF.de"
    20. .UserName = "1234567890"
    21. .Password = "1234455666"
    22. .SslHostCertificateFingerprint = "XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX"
    23. End With
    24. Using session As Session = New Session
    25. ' Will continuously report progress of transfer
    26. AddHandler session.FileTransferProgress, AddressOf SessionFileTransferProgress
    27. ' Connect
    28. session.Open(sessionOptions)
    29. Try
    30. ' Download files and throw on any error
    31. session.GetFiles("/muster.txt", "C:\Users\test").Check()
    32. Finally
    33. ' Terminate line after the last file (if any)
    34. If _lastFileName IsNot Nothing Then
    35. Console.WriteLine()
    36. End If
    37. End Try
    38. End Using
    39. Catch e As Exception
    40. MsgBox(e.ToString)
    41. End Try
    42. End Sub
    43. Private Shared Sub SessionFileTransferProgress(
    44. ByVal sender As Object, ByVal e As FileTransferProgressEventArgs)
    45. ' New line for every new file
    46. If (_lastFileName IsNot Nothing) AndAlso (_lastFileName <> e.FileName) Then
    47. Console.WriteLine()
    48. End If
    49. ' Print transfer progress
    50. Console.Write("\r{0} ({1:P0})", e.FileName, e.FileProgress)
    51. ' Remember a name of the last file reported
    52. _lastFileName = e.FileName
    53. End Sub
    54. Public Delegate Sub FileTransferProgressEventHandler(
    55. ByVal sender As Object, ByVal e As FileTransferProgressEventArgs)
    56. Private Shared _lastFileName As String
    57. Public Custom Event FileTransferred As FileTransferredEventHandler
    58. AddHandler(value As FileTransferredEventHandler)
    59. End AddHandler
    60. RemoveHandler(value As FileTransferredEventHandler)
    61. End RemoveHandler
    62. RaiseEvent(sender As Object, e As TransferEventArgs)
    63. End RaiseEvent
    64. End Event
    65. End Class
    66. End Class


    Fehler:
    Fehler 6 "FileTransferProgress" ist kein Ereignis von "WinSCP.Session". 24
    Fehler 10 "FileProgress" ist kein Member von "test.form3.FileTransferProgressEventArgs". 57
    _-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-_

    MFG

    _-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-_

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Azu“ ()

    So, habe es fast, habe leider immer noch 1 fehler, den ich nicht verstehe, hat jemand eine idee ?



    VB.NET-Quellcode

    1. Imports System
    2. Imports WinSCP
    3. Public Class Form1
    4. Friend Class Example
    5. Public Shared Function Main() As Integer
    6. Try
    7. ' Setup session options
    8. Dim sessionOptions As New SessionOptions
    9. With sessionOptions
    10. .Protocol = Protocol.Sftp
    11. .HostName = "example.com"
    12. .UserName = "user"
    13. .Password = "mypassword"
    14. .SshHostKeyFingerprint = "ssh-rsa 1024 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
    15. End With
    16. Using session As Session = New Session
    17. ' Will continuously report progress of transfer
    18. AddHandler session.FileTransferProgress, AddressOf SessionFileTransferProgress
    19. ' Connect
    20. session.Open(sessionOptions)
    21. Try
    22. ' Download files and throw on any error
    23. session.GetFiles( _
    24. "/home/martin/public_html/", "d:\backup").Check()
    25. Finally
    26. ' Terminate line after the last file (if any)
    27. If _lastFileName IsNot Nothing Then
    28. Console.WriteLine()
    29. End If
    30. End Try
    31. End Using
    32. Return 0
    33. Catch e As Exception
    34. Console.WriteLine("Error: {0}", e)
    35. Return 1
    36. End Try
    37. End Function
    38. Private Shared Sub SessionFileTransferProgress(
    39. ByVal sender As Object, ByVal e As FileTransferProgressEventArgs)
    40. ' New line for every new file
    41. If (_lastFileName IsNot Nothing) AndAlso (_lastFileName <> e.FileName) Then
    42. Console.WriteLine()
    43. End If
    44. ' Print transfer progress
    45. Console.Write("\r{0} ({1:P0})", e.FileName, e.FileProgress)
    46. ' Remember a name of the last file reported
    47. _lastFileName = e.FileName
    48. End Sub
    49. Private Shared _lastFileName As String
    50. End Class
    51. End Class



    Fehler:
    Fehler 1 Die Signatur der Private Shared Sub SessionFileTransferProgress(sender As Object, e As FileTransferProgressEventArgs)-Methode ist mit dem Delegaten "Delegate Sub FileTransferProgressEventHandler(sender As Object, e As WinSCP.FileTransferProgressEventArgs)" nicht kompatibel.
    _-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-_

    MFG

    _-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-__-_-_