| |
VB.NET - Ein- und UmsteigerFTP Upload/Download über FTPWebrequest | | | Autor: MoveIt | Datum: 13.02.18 15:23 |
| Hallo,
die Aufgabe besteht darin, eine FTP-Klasse zu schreiben, die in bestimmten Zeitabständen über einen Timer Textdateien auf unseren FTP-Server hochlädt bzw. von dort herunterlädt.
Beides funktioniert nicht bzw. unzuverlässig.
Public Sub OpenFTPConnection(ByRef request As Net.FtpWebRequest, ByVal Path As _
String, Optional UseSSL As Boolean = False, Optional PortNr As Integer = 21, _
Optional Method As String = "LIST")
Dim sFileList As New List(Of String)
Dim response As FtpWebResponse
Dim ftpURI As System.Uri
'Mach eine kurze Pause
System.Threading.Thread.Sleep(1500)
_CurrentURIPath = "ftp://" & FTP_REMOTE_SERVER_ADDR & Path
ftpURI = New System.Uri(_CurrentURIPath)
request = CType(Net.FtpWebRequest.Create(ftpURI), FtpWebRequest)
request.Method = Method
request.Credentials = New Net.NetworkCredential(FTP_LOGIN_USER, _
FTP_LOGIN_PWD)
request.KeepAlive = False
request.Proxy = Nothing
request.UsePassive = True
request.EnableSsl = UseSSL
request.UseBinary = True
If UseSSL Then
ServicePointManager.ServerCertificateValidationCallback = AddressOf _
AcceptAllCertifications
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
ServicePointManager.FindServicePoint(ftpURI)
End If
System.Threading.Thread.Sleep(250)
If FTP_REQUEST Is Nothing Then
response = CType(request.GetResponse, FtpWebResponse)
eNotif.OutMessage(response.WelcomeMessage)
Else
ExecCmd(request)
End If
FTP_REQUEST = request
End Sub
Public Sub ExecCmd(ByVal request As FtpWebRequest)
eNotif.OutMessage(getStatusDescription(request))
End Sub
Public Function getStatusDescription(ByRef request As FtpWebRequest) As String
Dim response As FtpWebResponse
Try
If request IsNot Nothing Then
response = CType(request.GetResponse, FtpWebResponse)
Return response.StatusDescription
Else
Throw New Exception("Err: No valid request object found")
End If
Catch ex As Exception
_LogError.WriteError(ex)
MsgBox(ex.Message)
End Try
End Function Ein Problem besteht hier u.a. darin, dass bsds. bei mehreren Dateien in einer Queue der FTP-Server nach dem (überraschend) erfolgreichen Upload einer Datei bei der nächsten Datein gewöhnlich Fehler und Exceptions gemeldet werden:
z.B.: 500 oder auch 226 (Transfer Complete)
Beim letzteren würde ich in die Hände klatschen, wenn da denn wirklich der Statuscode 226 übermittelt würde, kann ihn aber nicht wirklich abfangen.
Die FTP-Klasse ist ein wichtiger Pfeiler eines Projekts. Da ich nicht das Rad neu erfinden möchte:
kennt jemand evtl. einen anderen funktionsfähigen und zuverlässigen Ansatz ?
Vielen Dank,
Stephan
__________________
Heute ist nicht mein Tag.
| |
FTP Upload/Download über FTPWebrequest | 1.195 | MoveIt | 13.02.18 15:23 |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
Neu! sevEingabe 3.0
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|