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
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
VB.NET-Quellcode
- Imports System.Net
- Imports System.IO.Directory
- Imports System.Net.WebRequestMethods
- Public Class Scanbutton
- 'Deklaration
- Dim ziel As String
- Dim user As String
- Dim pwd As String
- Dim datum As String
- Dim ofd As New OpenFileDialog
- Dim sfd As New SaveFileDialog
- Dim fso As System.Object
- Dim imagepfad As String
- Dim dialog As New WIA.CommonDialog
- Dim image As WIA.ImageFile = Nothing
- Dim i As String
- Private Declare Function GetTickCount Lib "kernel32" () As Long
- Private Const ConnectTimeOut = 30
- Private Sub Scanbutton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- 'Zugangsdaten
- user = ("username")
- pwd = ("passwort")
- i = 0
- fso = New Object
- 'Datum Formatierung
- datum = FormatDateTime(Now, DateFormat.ShortTime)
- datum = Replace(datum, " ", "_") ' leerzeichen durch unterstrich ersetzen
- datum = Replace(datum, ".", "") ' Punkte entfernen
- datum = Replace(datum, ":", "") ' Doppelpunkte entfernen
- MsgBox("Legen Sie ein Dokument in Ihren Scanner.")
- Try
- image = dialog.ShowAcquireImage(WIA.WiaDeviceType.ScannerDeviceType, , , , False, )
- Catch ex As Exception
- MsgBox("Ein Fehler ist aufgetreten! Überprüfen Sie ob das Gerät Eingeschaltet und angeschlossen ist." & Environment.NewLine & Environment.NewLine & ex.Message)
- End
- End Try
- If Not image Is Nothing Then
- imagepfad = ("C:\Scanbilder\")
- If FileExists(imagepfad + "img_" + datum + ".jpg") Then
- i = i + 1
- image.SaveFile(imagepfad + "img_" + datum + "_" + i + ".jpg")
- Else
- image.SaveFile(imagepfad + "img_" + datum + ".jpg")
- End If
- Else
- MsgBox("Es wurde kein Bild erfasst!", MsgBoxStyle.Information, "Information")
- End
- End If
- ofd.InitialDirectory = "C:\Scanbilder\"
- ofd.Filter = "Gescannte Dokumente (*.jpg)|*.jpg"
- ofd.Title = "Datei zum Öffnen auswählen"
- If ofd.ShowDialog() = DialogResult.OK Then
- MsgBox("Datei wurde ausgewählt.")
- Else
- MsgBox("Abbruch durch User.")
- End
- End If
- Dim webclient As New Net.WebClient
- webclient.Credentials = New Net.NetworkCredential(user, pwd)
- ziel = ("ftpserver/ftpsonstige/Scanbilder/")
- Dim request As Net.FtpWebRequest = Net.FtpWebRequest.Create(ziel)
- request.Method = Net.WebRequestMethods.Ftp.ListDirectory
- request.Credentials = New Net.NetworkCredential(user, pwd)
- Try
- request.GetResponse()
- MsgBox("Connected")
- Catch ex As Exception
- MsgBox("Kein Connect")
- Close()
- End Try
- My.Computer.Network.DownloadFile(ofd.FileName, ofd.SafeFileName, user, pwd)
- If ftpfileExists(ziel) = True Then
- ziel = ("ftpserver/ftpsonstige/Scanbilder/" + ofd.SafeFileName)
- My.Computer.Network.UploadFile(ofd.FileName, ziel, user, pwd, True, 500)
- MsgBox("Erfolgreiches Hochladen!")
- End
- Else
- MsgBox("Der Zielordner zum Einfügen der gescannten Dokumente, ist nicht verfügbar.")
- MsgBox("Überprüfen Sie ob der Zielordner vorhanden ist.")
- End
- End If
- 'MsgBox("Die Datei ist bereits Vorhanden.")
- 'MsgBox("Es wird eine weiter Datei erstellt, mit der Erweiterung der aktuellen Uhrzeit.")
- 'ofd.FileName = datum + "_" + ofd.SafeFileName
- 'My.Computer.Network.UploadFile(ofd.FileName, ziel, user, pwd, True, 500)
- 'MsgBox("Erfolgreiches Hochladen!")
- 'End
- 'MsgBox("Die hochgeladene Datei heißt nun: " + ofd.FileName)
- 'Else
- 'MsgBox("Datei existiert nicht. Datei wird hochgeladen.")
- 'My.Computer.Network.UploadFile(ofd.FileName, ziel, user, pwd, True, 500)
- 'End If
- ' End If
- End Sub
- Public Function DirExists(ByVal OrigFolder As String)
- Dim fs
- fs = CreateObject("Scripting.FileSystemObject")
- DirExists = fs.folderexists(OrigFolder)
- End Function
- Private Function FileExists(ByVal FileName As String) As Boolean
- On Error Resume Next
- FileExists = Not CBool(GetAttr(FileName) And (vbDirectory Or vbVolume))
- On Error GoTo 0
- End Function
- Private Function ftpfileExists(ByVal FileName As String)
- If (My.Computer.Network.IsAvailable = True) Then
- 'My.Computer.Network.DownloadFile(ofd.FileName, ofd.SafeFileName, user, pwd)
- MsgBox("Hat geklappt")
- Return (True)
- End
- Else
- MsgBox("Hat nicht geklappt")
- Return (False)
- End
- End If
- End Function
- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles einfacher_upload.Click
- MsgBox("Wählen Sie eine Datei aus, die Sie hochladen möchten.")
- upload()
- End Sub
- Private Function upload() As Action
- ofd.InitialDirectory = "C:\Scanbilder\"
- ofd.Filter = "Gescannte Dokumente (*.jpg)|*.jpg"
- ofd.Title = "Datei zum Öffnen auswählen"
- If ofd.ShowDialog() = DialogResult.OK Then
- MsgBox("Datei wurde ausgewählt.")
- Else
- MsgBox("Abbruch durch User.")
- End
- End If
- ziel = ("ftpserver/ftpsonstige/Scanbilder/")
- If ftpfileExists(ziel) = True Then
- ziel = ("ftpserver/ftpsonstige/Scanbilder/" + ofd.SafeFileName)
- My.Computer.Network.UploadFile(ofd.FileName, ziel, user, pwd, True, 500)
- MsgBox("Erfolgreiches Hochladen!")
- End
- Else
- MsgBox("Der Zielordner zum Einfügen der gescannten Dokumente, ist nicht verfügbar.")
- MsgBox("Überprüfen Sie ob der Zielordner vorhanden ist.")
- End
- End If
- End Function
- End Class
Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „MarcoIT“ ()