Hallo
mit nachfolgendem Code - den ich, das sind meine ersten Schritte in VB.Net, also blutiger Anfänger - aus dem Internet zusammen kopiert habe :-((,
versuche ich von einem FTP-Server in einer Zeitschleife Dateien herunterzuladen,
das funktioniert auch prächtig - aber leider nur für den 1. Schleifen-Durchlauf
danach löst mir meine request.Method = WebRequestMethods.Ftp.ListDirectory einen Fehler "Dieser Vorgang kann nicht ausgeführt werden, nachdem die Anforderung gesendet wurde" aus
den ich nur durch Neustart der Applikation "beheben" kann
Könnt ihr mir hier auf die Sprünge helfen?
Spoiler anzeigen
Paul
mit nachfolgendem Code - den ich, das sind meine ersten Schritte in VB.Net, also blutiger Anfänger - aus dem Internet zusammen kopiert habe :-((,
versuche ich von einem FTP-Server in einer Zeitschleife Dateien herunterzuladen,
das funktioniert auch prächtig - aber leider nur für den 1. Schleifen-Durchlauf
danach löst mir meine request.Method = WebRequestMethods.Ftp.ListDirectory einen Fehler "Dieser Vorgang kann nicht ausgeführt werden, nachdem die Anforderung gesendet wurde" aus
den ich nur durch Neustart der Applikation "beheben" kann
Könnt ihr mir hier auf die Sprünge helfen?
Brainfuck-Quellcode
- Region "Variablen"
- Const ftpUser As String = "XXXX"
- Const ftpPW As String = "XXXXXXXXXX"
- Const PATH_MESSAGE_OUT_LOCAL As String = "YYYYYY"
- Const PATH_MESSAGE_IN_LOCAL As String = "YYYYYY"
- Const PATH_MESSAGE_FROM_FTP As String = "ftp://ftp......." '<<<<
- Const PATH_MESSAGE_TO_FTP As String = "ftp://ftp........." '<<<<
- Dim vergangeneMinuten As Integer = 0
- Dim limitMinuten As Integer = 2
- Dim initalStart As Boolean = True
- Dim Dirlist As New List(Of String) 'I prefer List() instead of an array
- Dim request As FtpWebRequest = DirectCast(WebRequest.Create(PATH_MESSAGE_FROM_FTP), FtpWebRequest)
- Dim request1 As New WebClient()
- #End Region
- Sub CARGON_DOWNLOAD()
- Try
- request.Method = WebRequestMethods.Ftp.ListDirectory
- request.Credentials = New NetworkCredential(ftpUser, ftpPW)
- request1.Credentials = New NetworkCredential(ftpUser, ftpPW)
- Dim response As FtpWebResponse = DirectCast(request.GetResponse(), FtpWebResponse)
- Dim responseStream As Stream = response.GetResponseStream
- Using reader As New StreamReader(responseStream)
- Do While reader.Peek <> -1
- '// MessageBox.Show(reader.ReadLine())
- Dirlist.Add(reader.ReadLine)
- Dim strFileName = Replace(Dirlist.Item(0), "fmccs/", "").ToString
- '// Dim strPathFileName = (PATH_MESSAGE_FROM_FTP & "/" & strFileName)
- Dim strPathFileName = (PATH_MESSAGE_FROM_FTP & strFileName)
- Dim bytes() As Byte = request1.DownloadData(strPathFileName)
- Dirlist.Clear()
- Try
- '// Create a FileStream to read the file into
- Dim DownloadStream As FileStream = IO.File.Create(PATH_MESSAGE_IN_LOCAL & strFileName)
- DownloadStream.Write(bytes, 0, bytes.Length)
- DownloadStream.Close()
- Me.ListBox1.Items.Add("DOWNLOAD " & strFileName)
- Dim FTPDelReq As FtpWebRequest = WebRequest.Create(strPathFileName)
- FTPDelReq.Credentials = New Net.NetworkCredential(ftpUser, ftpPW)
- FTPDelReq.Method = WebRequestMethods.Ftp.DeleteFile
- Dim FTPDelResp As FtpWebResponse = FTPDelReq.GetResponse
- Application.DoEvents()
- Dim actContent As String = vbNullString
- ' Open file.txt with the Using statement.
- Using r As StreamReader = New StreamReader(PATH_MESSAGE_IN_LOCAL & strFileName)
- ' Store contents in this String.
- Dim line As String
- ' Read first line.
- line = r.ReadLine
- ' Loop over each line in file, While list is Not Nothing.
- Do While (Not line Is Nothing)
- actContent += line & vbNewLine
- 'Read in - >>> the next line.
- line = r.ReadLine
- Loop
- '// Call eMail(actContent, strFileName)
- '// Call eMailARGON(actContent, strFileName)
- End Using
- Catch ex As Exception
- 'MessageBox.Show(ex.Message)
- ' Exit Sub
- End Try
- Loop
- '// MessageBox.Show("SITA IN // Process Complete")
- End Using
- response.Close()
- Application.DoEvents()
- '// alle MSGs verschieben - davor sind sie gesperrt weil im Zugriff
- For Each foundFile As String In My.Computer.FileSystem.GetFiles(PATH_MESSAGE_IN_LOCAL, Microsoft.VisualBasic.FileIO.SearchOption.SearchTopLevelOnly, "*.msg")
- Try
- My.Computer.FileSystem.MoveFile(foundFile, PATH_MESSAGE_IN_LOCAL & "Received\" & My.Computer.FileSystem.GetName(foundFile))
- '// My.Computer.FileSystem.CopyFile(foundFile, PATH_MESSAGE_IN_LOCAL & foundFile)
- Catch ex As IOException
- '// MsgBox(foundFile)
- '// File bereits vorhanden
- My.Computer.FileSystem.DeleteFile(foundFile)
- End Try
- Next
- Catch ex As Exception
- Me.ListBox1.Items.Add("DOWNLOAD " & ex.Message)
- '// Exit Sub
- End Try
- End Sub
Paul
Jeder trägt sein eigenes Brett vorm Kopf
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Grundlosguetiger“ ()