FTP Zugriff

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von MarcoIT.

    Moinsen Zusammen ;),

    ich sitze gerade daran, ein FTP-Zugriff mit Upload und Download zu basteln. Davor wird ein Dokument eingecannt, dass dann verwendet werden kann.
    Jetzt will ich auf dem FTP Server testen, ob die Datei vorhanden ist und wenn diese Datei bereits vorhanden ist, dann soll wie in Windows ein Count (1) (2) hochzählen lassen. Nun kommt´s: das große Problem besteht aber bisher darin, dass ich keinerlei FTP Funktionen kenne, die mir z.B. FileExist machen können. Kann mir jemand bitte sagen wie ich Dateien auf einem FTP auf Bestehen prüfen soll? Ich dachte vielleicht daran, nach dem Namen der gescannten Datei in dem Zielordner zu suchen und dann herunterzuladen und wenn das geklappt hat, soll er mir einen Erfolg zurück geben... Aber eine Datei zu prüfen, runterladen und dann noch eine andere Datei zum hochladen erscheint mir ein "wenig" umfangreich... Was meint Ihr gibt es da nicht was einfacheres?
    Hier noch mein Quellcode, damit Ihr Euch mal ein Bild machen könnt :D

    VB.NET-Quellcode

    1. Imports System.Net
    2. Imports System.IO.Directory
    3. Imports System.Net.WebRequestMethods
    4. Public Class Scanbutton
    5. 'Deklaration
    6. Dim ziel As String
    7. Dim user As String
    8. Dim pwd As String
    9. Dim datum As String
    10. Dim ofd As New OpenFileDialog
    11. Dim sfd As New SaveFileDialog
    12. Dim fso As System.Object
    13. Dim imagepfad As String
    14. Dim dialog As New WIA.CommonDialog
    15. Dim image As WIA.ImageFile = Nothing
    16. Dim i As String
    17. Private Declare Function GetTickCount Lib "kernel32" () As Long
    18. Private Const ConnectTimeOut = 30
    19. Private Sub Scanbutton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    20. 'Zugangsdaten
    21. user = ("username")
    22. pwd = ("passwort")
    23. i = 0
    24. fso = New Object
    25. 'Datum Formatierung
    26. datum = FormatDateTime(Now, DateFormat.ShortTime)
    27. datum = Replace(datum, " ", "_") ' leerzeichen durch unterstrich ersetzen
    28. datum = Replace(datum, ".", "") ' Punkte entfernen
    29. datum = Replace(datum, ":", "") ' Doppelpunkte entfernen
    30. MsgBox("Legen Sie ein Dokument in Ihren Scanner.")
    31. Try
    32. image = dialog.ShowAcquireImage(WIA.WiaDeviceType.ScannerDeviceType, , , , False, )
    33. Catch ex As Exception
    34. MsgBox("Ein Fehler ist aufgetreten! Überprüfen Sie ob das Gerät Eingeschaltet und angeschlossen ist." & Environment.NewLine & Environment.NewLine & ex.Message)
    35. End
    36. End Try
    37. If Not image Is Nothing Then
    38. imagepfad = ("C:\Scanbilder\")
    39. If FileExists(imagepfad + "img_" + datum + ".jpg") Then
    40. i = i + 1
    41. image.SaveFile(imagepfad + "img_" + datum + "_" + i + ".jpg")
    42. Else
    43. image.SaveFile(imagepfad + "img_" + datum + ".jpg")
    44. End If
    45. Else
    46. MsgBox("Es wurde kein Bild erfasst!", MsgBoxStyle.Information, "Information")
    47. End
    48. End If
    49. ofd.InitialDirectory = "C:\Scanbilder\"
    50. ofd.Filter = "Gescannte Dokumente (*.jpg)|*.jpg"
    51. ofd.Title = "Datei zum Öffnen auswählen"
    52. If ofd.ShowDialog() = DialogResult.OK Then
    53. MsgBox("Datei wurde ausgewählt.")
    54. Else
    55. MsgBox("Abbruch durch User.")
    56. End
    57. End If
    58. Dim webclient As New Net.WebClient
    59. webclient.Credentials = New Net.NetworkCredential(user, pwd)
    60. ziel = ("ftpserver/ftpsonstige/Scanbilder/")
    61. Dim request As Net.FtpWebRequest = Net.FtpWebRequest.Create(ziel)
    62. request.Method = Net.WebRequestMethods.Ftp.ListDirectory
    63. request.Credentials = New Net.NetworkCredential(user, pwd)
    64. Try
    65. request.GetResponse()
    66. MsgBox("Connected")
    67. Catch ex As Exception
    68. MsgBox("Kein Connect")
    69. Close()
    70. End Try
    71. My.Computer.Network.DownloadFile(ofd.FileName, ofd.SafeFileName, user, pwd)
    72. If ftpfileExists(ziel) = True Then
    73. ziel = ("ftpserver/ftpsonstige/Scanbilder/" + ofd.SafeFileName)
    74. My.Computer.Network.UploadFile(ofd.FileName, ziel, user, pwd, True, 500)
    75. MsgBox("Erfolgreiches Hochladen!")
    76. End
    77. Else
    78. MsgBox("Der Zielordner zum Einfügen der gescannten Dokumente, ist nicht verfügbar.")
    79. MsgBox("Überprüfen Sie ob der Zielordner vorhanden ist.")
    80. End
    81. End If
    82. 'MsgBox("Die Datei ist bereits Vorhanden.")
    83. 'MsgBox("Es wird eine weiter Datei erstellt, mit der Erweiterung der aktuellen Uhrzeit.")
    84. 'ofd.FileName = datum + "_" + ofd.SafeFileName
    85. 'My.Computer.Network.UploadFile(ofd.FileName, ziel, user, pwd, True, 500)
    86. 'MsgBox("Erfolgreiches Hochladen!")
    87. 'End
    88. 'MsgBox("Die hochgeladene Datei heißt nun: " + ofd.FileName)
    89. 'Else
    90. 'MsgBox("Datei existiert nicht. Datei wird hochgeladen.")
    91. 'My.Computer.Network.UploadFile(ofd.FileName, ziel, user, pwd, True, 500)
    92. 'End If
    93. ' End If
    94. End Sub
    95. Public Function DirExists(ByVal OrigFolder As String)
    96. Dim fs
    97. fs = CreateObject("Scripting.FileSystemObject")
    98. DirExists = fs.folderexists(OrigFolder)
    99. End Function
    100. Private Function FileExists(ByVal FileName As String) As Boolean
    101. On Error Resume Next
    102. FileExists = Not CBool(GetAttr(FileName) And (vbDirectory Or vbVolume))
    103. On Error GoTo 0
    104. End Function
    105. Private Function ftpfileExists(ByVal FileName As String)
    106. If (My.Computer.Network.IsAvailable = True) Then
    107. 'My.Computer.Network.DownloadFile(ofd.FileName, ofd.SafeFileName, user, pwd)
    108. MsgBox("Hat geklappt")
    109. Return (True)
    110. End
    111. Else
    112. MsgBox("Hat nicht geklappt")
    113. Return (False)
    114. End
    115. End If
    116. End Function
    117. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles einfacher_upload.Click
    118. MsgBox("Wählen Sie eine Datei aus, die Sie hochladen möchten.")
    119. upload()
    120. End Sub
    121. Private Function upload() As Action
    122. ofd.InitialDirectory = "C:\Scanbilder\"
    123. ofd.Filter = "Gescannte Dokumente (*.jpg)|*.jpg"
    124. ofd.Title = "Datei zum Öffnen auswählen"
    125. If ofd.ShowDialog() = DialogResult.OK Then
    126. MsgBox("Datei wurde ausgewählt.")
    127. Else
    128. MsgBox("Abbruch durch User.")
    129. End
    130. End If
    131. ziel = ("ftpserver/ftpsonstige/Scanbilder/")
    132. If ftpfileExists(ziel) = True Then
    133. ziel = ("ftpserver/ftpsonstige/Scanbilder/" + ofd.SafeFileName)
    134. My.Computer.Network.UploadFile(ofd.FileName, ziel, user, pwd, True, 500)
    135. MsgBox("Erfolgreiches Hochladen!")
    136. End
    137. Else
    138. MsgBox("Der Zielordner zum Einfügen der gescannten Dokumente, ist nicht verfügbar.")
    139. MsgBox("Überprüfen Sie ob der Zielordner vorhanden ist.")
    140. End
    141. End If
    142. End Function
    143. End Class

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „MarcoIT“ ()

    *Unnötiges Vollzitat entfernt*

    Danke dir! Habe deinen "alten" Thread gelesen mit FTP Übergabe.
    Kann dort aber leider nicht antworten deshalb antworte ich dir mal hier:
    Die von dir verwendete funktionen funktionieren nur auf lokalen pfaden. deswegen hat der ftp zugriff nicht funktioniert und das selbe problem habe ich auch

    Quelle: [VB 2008] OpenFileDialog mit FTP pfad öffnen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()