FTPLib 2.1.1.0

    • Release

    Es gibt 589 Antworten in diesem Thema. Der letzte Beitrag () ist von hitman48.

      Ich möchte ja einen gesamten Ordner übertragen. Das es nicht möglich ist einen Ordner im Ganzen zu übertragen ist mir schon klar. Deshalb habe ich mich ein wenig umgeschaut und hier im Forum in irgendeinem Beitrag FTPLib gefunden. Womit dies angeblich möglich ist

      Hier der gesamte Code:

      VB.NET-Quellcode

      1. Dim host, username, passwort, ftppfad As String
      2. Private WithEvents locFTP As FTP
      3. Public Sub New()
      4. InitializeComponent()
      5. locFTP = New FTP
      6. End Sub
      7. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
      8. locFTP.Disconnect()
      9. End Sub
      10. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      11. FolderBrowserDialog1.ShowDialog()
      12. FolderBrowserDialog1.SelectedPath = ftppfad
      13. TextBox4.Text = ftppfad
      14. End Sub
      15. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
      16. host = TextBox1.Text
      17. username = TextBox2.Text
      18. passwort = TextBox3.Text
      19. ' Verbindung zum FTP-Server herstellen
      20. locFTP.Connect(vStrHost:=host, vStrUsername:=username, vStrPassword:=passwort)
      21. If (locFTP.IsConnected = True) Then
      22. MessageBox.Show("Verbindung wurde hergestellt")
      23. Else
      24. MessageBox.Show("Verbindung konnte nicht hergestellt werden.")
      25. End If
      26. End Sub
      Button1 macht:
      1. Öffnet einen folderBrowser
      2. setzt den Pfad des FolderBrowsers auf nichts(ftppfad)
      3. setzt den textBox4.text auf ftppfad(und somit auf nichts)
      Button2:
      1. Setzt drei Variablen
      2. verbindet sich mit diesen 3 Variablen
      3. Überprüft ob die Verbindung erfolgreich war...

      Ich sehe hier noch nichts von Ordner hochladen ;)
      Ich wollte auch mal ne total überflüssige Signatur:
      ---Leer---
      Habe folgendes Vergessen :D... :

      VB.NET-Quellcode

      1. Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
      2. locFTP.Upload(ftppfad, "/")
      3. End Sub


      Ich habe jetzt

      VB.NET-Quellcode

      1. Private Sub FTP_ProgressChanged(ByVal sender As Object, ByVal e As Events.FTPProgressChangedEventArgs) Handles locFTP.ProgressChanged
      2. ' Fortschritt in einer Progressbar anzeigen
      3. Me.pbFortschritt.Value = e.Single.Percent
      4. ' Aktuellen Fortschritt anzeigen
      5. Me.lblPercent.Text = CStr(e.Single.Percent) & " %"
      6. ' Bereits heruntergeladene MBs anzeigen
      7. Me.lblSize.Text = CStr(Math.Round(((e.Single.SizeLeft / 1024) / 1024), 2)) & " MB von " & CStr(Math.Round(((e.Single.Size / 1024) / 1024), 2)) & " MB hochgeladen."
      8. ' Vergangene Zeit anzeigen
      9. Me.lblTimeElapsed.Text = CStr(e.Single.TimeElapsed) & " vergangen"
      10. ' Verbleibende Zeit anzeigen
      11. Me.lblTimeLeft.Text = CStr(e.Single.TimeLeft) & " verbleibend"
      12. ' Geschwindigkeit anzeigen
      13. Me.lblBandwidth.Text = CStr(e.Single.Bandwidth) & " KB/s"
      14. End Sub

      aus dem Beispielprojekt kopiert.

      Wenn ich nun auf Hochladen drücke (button4) läuft der Balken die Zeit usw. Der vorgang wir auch erfolgreich abgeschlossen.

      Nur wurde auf dem FTP weder eine Datei noch ein Ordner erstellt.

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

      sicher dass du auch in den richtigen Bereich hochlädst bzw. da auch hinguckst ?
      soweit war ich auch. Hast du dort auch nachgeguckt oder zB im /html/ (mach ich öfters)
      An deinem Code liegt es nicht. Hab ihn eben getestet und auf meinen Server einen Ordner geladen.
      Hallo singu,

      Ich habe Schwierigkeiten mit deiner Lib und der Demo.
      Starte ich das Demo Projekt ist Visual Studio ausgelastet und alles stürzt zusammen.
      Ich habe jetzt auch nur das Demo Projekt testen wollen um mich mit deiner Lib vertraut zu machen.

      hoffe du hast einen Rat!
      LG.L
      Also ich hab noch gar nichts hochgeladen, ich habe in der Demo die FTP Daten eingegeben, Debug = Programm sollte starten
      tut es aber nicht, es kommt keine Fehlermeldung weil Visual Studio sich aufhängt.

      Lg.L

      singu schrieb:

      Features / Funktionen

      Up- & Download mit detailliertem Fortschritt

      Dateien

      Datei löschen

      Prüfen ob eine Datei existiert

      Dateigröße auslesen

      Datei umbenennen

      Dateien auflisten



      Verzeichnis

      Verzeichnis erstellen

      Verzeichnis löschen

      Prüfen ob ein Verzeichnis existiert

      Ordner auflisten



      Dateien bzw. Verzeichnisse in einem bestimmten Verzeichnis auflisten


      Wollte mal wissen ob nun Verzeichnis umbenennen schon funktioniert :)

      lg
      ScheduleLib 0.0.1.0
      Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten
      Hi und erstmal Danke dass Du dir die Mühe machst.

      Da ich eine solche FTP Klasse benötige bin ich auf diese hier gestoßen.
      Leider musste ich nach Tagen des ausprobierens feststellen, dass sie leider nicht funktioniert. Jedenfalls die neuste Version davon.
      Ich habe mir mal die Mühe gemacht und einige Dinge ausprobiert.

      ' Datei hochladen
      ' Funktioniert
      ' locFTP.Upload("D:\up\test.txt", "test.txt")

      'Upload funktioniert nicht. Egal was man eingibt, Ordner exisitiert schon!
      'locFTP.DirCreate("/httpdocs/ordner")

      'Ordner Löschen funktioniert
      'locFTP.DirRemove("/httpdocs/Ordner")

      'Es kommt immer die Meldung das, das Verzeichnis existiert
      'locFTP.DirExists("/httpdocs/Ordner")

      'Datei existiert immer
      'locFTP.FileExists("/httpdocs/tedst.txt")

      'Funktioniert
      'locFTP.FileDelete("/httpdocs/test.txt")

      Ich habe die Original Demo verwendet.
      Das einzigst was ich geändert habe ist:

      Private WithEvents locFTP As FTP = nothing

      zu:

      Private WithEvents locFTP As New FTP() und in Public Sub New(), locFTP = New FTP() hinzugefügt.

      Und die neuste ftplib.dll implementiert.

      Hier ein paar Angaben zur Umgebung:

      OS: Windows 7 Ultimate 64 Bit
      Entwicklungsumgebung: Virtual Basic Express 2010
      FTP Klasse: v.2.0

      Wäre Super wenn die Klasse funktionieren würde :)

      Viele Grüße

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

      Hi,

      ich kann zwar eine Verbindung herstellen, aber das downloaden und disconnecten funktioniert nicht:


      VB.NET-Quellcode

      1. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
      2. locFTP.Download("muster.ms.funpic.de/text.txt", "C:\users\mustermann\")
      3. End Sub


      ausserdem versuche ich das mit einer progressBar anzuzeigen wie eine Datei gedownloaded wird:

      VB.NET-Quellcode

      1. Private Sub FTP_ProgressChanged(ByVal sender As Object, ByVal e As Events.FTPProgressChangedEventArgs) Handles button1.click
      2. Me.pbFortschritt.Value = e.Single.Percent
      3. End Sub



      Dann hängt sich das Programm aber wegen eines Errors auf:

      Das Objekt des Typs "System.Windows.Forms.MouseEventArgs" kann nicht in Typ "FTPLib.Events.FTPProgressChangedEventArgs" umgewandelt werden.

      Desweiteren habe ich das Problem des disconnectens:

      VB.NET-Quellcode

      1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      2. 'Verbindung trennen
      3. locFTP.Disconnect()
      4. End Sub



      Das funktioniert nicht was muss ich in die Klammern schreiben ?

      Ich weiß das sind viele Fragen aber ich hoffe trotzdem, dass ihr mir helfen könnt
      die Download Funktion erwartet wahrscheinlich beim Ziel auch einen Dateinamen:

      VB.NET-Quellcode

      1. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
      2. locFTP.Download("muster.ms.funpic.de/text.txt", "C:\users\mustermann\text.txt")
      3. End Sub

      und sofern muster.ms.funpic.de der Host und kein Ordnername ist, musst du dies wohl auch weglassen...

      beim ProgressChanged musst du auch das entsprechende Event verwenden und nicht Button.Click:

      VB.NET-Quellcode

      1. Private Sub FTP_ProgressChanged(ByVal sender As Object, ByVal e As Events.FTPProgressChangedEventArgs) Handles locFTP.ProgressChanged
      2. Me.pbFortschritt.Value = e.Single.Percent
      3. End Sub


      beim trennen hab ich keine Ahnung, Fehlermeldung?
      Ich wollte auch mal ne total überflüssige Signatur:
      ---Leer---
      hi,

      danke für die Antwort:

      1. Wie meinst du das musste wohl weglassen ?

      VB.NET-Quellcode

      1. locFTP.Download("/text.txt", "C:\users\")


      so gehts nicht

      2.

      VB.NET-Quellcode

      1. Private Sub FTP_ProgressChanged(ByVal sender As Object, ByVal e As Events.FTPProgressChangedEventArgs) Handles locFTP.ProgressChanged
      2. Me.pbFortschritt.Value = e.Single.Percent
      3. End Sub


      geht auch nicht da dann der Error :
      "Die Handles-Klausel erfordert eine WithEvents-Variable, die im enthaltenden Typ oder einem seiner Basistypen definiert wird."
      auftritt

      3. Es gibt keine Fehlermeldung es wird einfach nicht disconnectet das ist als wenn du einen Button ohne Funktion drückst
      Guten Tag die Herren und Damen,

      erstmal danke für die V2.0 nun fonktioniert bei mir auch die Status anzeige top!
      nun habe ich folgendes problem wenn ich den download button (nach abgeschlossenem Download)erneut betätige kommt folgende fehlermeldung:
      Fehler Screenshot
      kann n mir wer sagen was ich falsch mache?
      Hier noch mein code
      und danke im Voraus

      Gruß Ötzi

      VB.NET-Quellcode

      1. Imports System.Windows.Forms
      2. Imports FTPLib
      3. Public Class Main
      4. Private WithEvents locFTP As FTP = Nothing
      5. Public Sub New()
      6. InitializeComponent()
      7. locFTP = New FTP
      8. End Sub
      9. Private Sub Main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      10. 'My.settings auslesen und Felder füllen
      11. Tb_IP_1.Text = My.Settings.IP_1
      12. Tb_IP_2.Text = My.Settings.IP_2
      13. Tb_IP_3.Text = My.Settings.IP_3
      14. Tb_IP_4.Text = My.Settings.IP_4
      15. Tb_Port.Text = My.Settings.Port
      16. Tb_username.Text = My.Settings.username
      17. Tb_password.Text = My.Settings.password
      18. Pb_Status.Visible = False
      19. 'LBL Initialisieren und ausblenden
      20. llbl_selected_path.Visible = False
      21. LBL_Status_1.Text = ""
      22. End Sub
      23. 'Ordnersuchoption für Backupordner
      24. Private Sub B_search_clean_directory_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B_search_clean_directory.Click
      25. 'Filebrowser Dialog Eignschaften festlegen und öffen
      26. FBD_clean.Description = "Bitte den gewünschten Backup Ordner wählen."
      27. FBD_clean.ShowNewFolderButton = False
      28. FBD_clean.SelectedPath = My.Settings.standard_folder
      29. If (FBD_clean.ShowDialog() = Windows.Forms.DialogResult.OK) Then
      30. Tb_Path.Text = FBD_clean.SelectedPath
      31. End If
      32. End Sub
      33. 'Backup ordnen Button -> Clean routine ausführen
      34. Private Sub B_clean_Backup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B_clean_Backup.Click
      35. 'Informationen in Variablen speichern
      36. Selected_Path = Tb_Path.Text
      37. Project_Number = Projectnumber.Text
      38. Anlagen_bezeichnung = Anlagenbeschreibung.Text
      39. If Not Projectnumber.Text = "" And Not Anlagenbeschreibung.Text = "" And Not Tb_Path.Text = "" And System.IO.Directory.Exists(Selected_Path) = True Then
      40. LBL_Projektnummer.ForeColor = Color.Black
      41. LBL_Anlagenbeschreibung.ForeColor = Color.Black
      42. LBL_Backupverzeichnis.ForeColor = Color.Black
      43. LBL_Status_1.Text = ""
      44. Pb_Status.Visible = False
      45. Call Clean_Sub()
      46. Else
      47. If Projectnumber.Text = "" Then LBL_Projektnummer.ForeColor = Color.Red Else LBL_Projektnummer.ForeColor = Color.Black
      48. If Anlagenbeschreibung.Text = "" Then LBL_Anlagenbeschreibung.ForeColor = Color.Red Else LBL_Anlagenbeschreibung.ForeColor = Color.Black
      49. If Tb_Path.Text = "" Then LBL_Backupverzeichnis.ForeColor = Color.Red Else LBL_Backupverzeichnis.ForeColor = Color.Black
      50. If Not Tb_Path.Text = "" And System.IO.Directory.Exists(Selected_Path) = False Then
      51. LBL_Status_1.ForeColor = Color.Red
      52. LBL_Status_1.Text = "!!! Der Angegebene Pfad existiert nicht !!!"
      53. Pb_Status.Image = My.Resources.fehler
      54. Pb_Status.Visible = True
      55. End If
      56. If Not Tb_Path.Text = "" And System.IO.Directory.Exists(Selected_Path) = True Then
      57. LBL_Status_1.Text = ""
      58. Pb_Status.Visible = False
      59. End If
      60. End If
      61. End Sub
      62. 'Parameter Info Button -> Info Dialog öffnen
      63. Private Sub Parameter_Info_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Parameter_Info_Button.Click
      64. FTP_Info.ShowDialog()
      65. End Sub
      66. Private Sub btnDownload_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDownload.Click
      67. 'Informationen in Variablen speichern
      68. Selected_Path = Tb_Path.Text
      69. Project_Number = Projectnumber.Text
      70. Anlagen_bezeichnung = Anlagenbeschreibung.Text
      71. 'Informationen in My.settings speichern um die Informationen zu erhalten
      72. My.Settings.IP_1 = Tb_IP_1.Text
      73. My.Settings.IP_2 = Tb_IP_2.Text
      74. My.Settings.IP_3 = Tb_IP_3.Text
      75. My.Settings.IP_4 = Tb_IP_4.Text
      76. My.Settings.Port = Tb_Port.Text
      77. My.Settings.username = Tb_username.Text
      78. My.Settings.password = Tb_password.Text
      79. My.Settings.Save()
      80. 'Datum aus System Auslesen
      81. Dim Year As String = Format$(Now, "yy")
      82. Dim Month As String = Format$(Now, "MM")
      83. Dim Day As String = Format$(Now, "dd")
      84. Dim Hour As String = Format$(Now, "hh")
      85. Dim Minute As String = Format$(Now, "mm")
      86. Dim Second As String = Format$(Now, "ss")
      87. 'Abchecken ob die Backup Infos vollständig ausgefüllt wurden.
      88. If Not Projectnumber.Text = "" And Not Anlagenbeschreibung.Text = "" And Not Tb_Path.Text = "" And System.IO.Directory.Exists(Selected_Path) = True Then
      89. LBL_Projektnummer.ForeColor = Color.Black
      90. LBL_Anlagenbeschreibung.ForeColor = Color.Black
      91. LBL_Backupverzeichnis.ForeColor = Color.Black
      92. LBL_Status_1.Text = ""
      93. llbl_selected_path.Visible = False
      94. Pb_Status.Visible = False
      95. Gb_Info.Enabled = False
      96. Gb_FTP.Enabled = False
      97. 'Steuerung anpingen und Pb grün färben
      98. If My.Computer.Network.Ping(My.Settings.IP_1 & "." & My.Settings.IP_2 & "." & My.Settings.IP_3 & "." & My.Settings.IP_4) = True Then
      99. PB_Ping.BackColor = Color.Lime
      100. 'FTP Verbindung herstellen und downloaden
      101. 'Verbindung zum FTP-Server herstellen
      102. locFTP.Connect(vStrHost:=My.Settings.IP_1 & "." & My.Settings.IP_2 & "." & My.Settings.IP_3 & "." & My.Settings.IP_4, vStrUsername:=My.Settings.username, vStrPassword:=My.Settings.password, vIntPort:=My.Settings.Port)
      103. If (locFTP.IsConnected = True) Then
      104. PB_FTP.BackColor = Color.Lime
      105. 'Backupordner erstellen
      106. Selected_Path = (Selected_Path & "\" & "20" & Year & "_" & Month & "_" & Day & "#" & Hour & "_" & Minute & "_" & Second & "#" & Project_Number)
      107. System.IO.Directory.CreateDirectory(Selected_Path)
      108. ' Sichtbare Dateien herunterladen
      109. locFTP.Download("/", Selected_Path & "\")
      110. Else
      111. Gb_Info.Enabled = True
      112. Gb_FTP.Enabled = True
      113. PB_FTP.BackColor = Color.Red
      114. LBL_Status_1.ForeColor = Color.Red
      115. LBL_Status_1.Text = "FTP Verbindung fehlerhaft, bitte Zugangsdaten prüfen."
      116. Pb_Status.Image = My.Resources.fehler
      117. Pb_Status.Visible = True
      118. End If
      119. Else
      120. Gb_FTP.Enabled = True
      121. Gb_Info.Enabled = True
      122. PB_Ping.BackColor = Color.Red
      123. LBL_Status_1.ForeColor = Color.Red
      124. LBL_Status_1.Text = "Ping zur Steuerung ( IP Adresse: " & My.Settings.IP_1 & "." & My.Settings.IP_2 & "." & My.Settings.IP_3 & "." & My.Settings.IP_4 & " ) ist fehlgeschlagen."
      125. Pb_Status.Image = My.Resources.fehler
      126. Pb_Status.Visible = True
      127. End If
      128. Else
      129. If Projectnumber.Text = "" Then LBL_Projektnummer.ForeColor = Color.Red Else LBL_Projektnummer.ForeColor = Color.Black
      130. If Anlagenbeschreibung.Text = "" Then LBL_Anlagenbeschreibung.ForeColor = Color.Red Else LBL_Anlagenbeschreibung.ForeColor = Color.Black
      131. If Tb_Path.Text = "" Then LBL_Backupverzeichnis.ForeColor = Color.Red Else LBL_Backupverzeichnis.ForeColor = Color.Black
      132. If Not Tb_Path.Text = "" And System.IO.Directory.Exists(Selected_Path) = False Then
      133. LBL_Status_1.ForeColor = Color.Red
      134. LBL_Status_1.Text = "!!! Der Angegebene Pfad existiert nicht !!!"
      135. Pb_Status.Image = My.Resources.fehler
      136. Pb_Status.Visible = True
      137. If Not Tb_Path.Text = "" And System.IO.Directory.Exists(Selected_Path) = True Then
      138. LBL_Status_1.Text = ""
      139. End If
      140. LBL_Status_1.Text = ""
      141. Pb_Status.Visible = False
      142. End If
      143. End If
      144. End Sub
      145. Private Sub FTP_Completed(ByVal sender As Object, ByVal e As Events.FTPCompletedEventArgs) Handles locFTP.Completed
      146. Gb_Info.Enabled = True
      147. Gb_FTP.Enabled = True
      148. PB_Ping.BackColor = Color.Transparent
      149. PB_FTP.BackColor = Color.Transparent
      150. If cb_clean.CheckState = CheckState.Checked Then
      151. locFTP.Disconnect()
      152. download = True
      153. Clean_Sub()
      154. LBL_Status_1.Text = "Download und Archivierung erfolgreich abgeschlossen."
      155. llbl_selected_path.Visible = True
      156. Pb_Status.Image = My.Resources.haken
      157. Pb_Status.Visible = True
      158. Else
      159. Pb_Status.Image = My.Resources.haken
      160. Pb_Status.Visible = True
      161. LBL_Status_1.Text = "Der Download wurde erfolgrich abgeschlossen."
      162. llbl_selected_path.Visible = True
      163. locFTP.Disconnect()
      164. End If
      165. End Sub
      166. Private Sub FTP_Canceled(ByVal sender As Object, ByVal e As Events.FTPCanceledEventArgs) Handles locFTP.Canceled
      167. MessageBox.Show("Der Download wurde abgebrochen.", "Download abgebrochen!", MessageBoxButtons.OK, MessageBoxIcon.Information)
      168. locFTP.Disconnect()
      169. End Sub
      170. End Class
      Fehler Screenshot