2017-11-02 3 views
0

hallo jeden Körper Ich brauche Hilfe, meine Excel-Datei vom Host idowloaded, aber die Datei leer ist (0 t) .Ich verwendet, um diesen einfachen Code:wie Datei vom FTP-Server (LAN/IP-Adresse) in vb.net dowload

'on event click 
Dim address As String = "ftp://172.xx.xx.x/C:/aero_mes/A_0101.xls" 
Dim locadress As String = "C:/bdcrq/A_0101.xls" 
Try 
    download = New WebClient 
    download.DownloadFileAsync(New Uri(address), locadress) 
Catch ex As Exception 
    MsgBox(ex.Message) 
End Try 
+1

Wenn Sie anrufen 'DowbloadFileAsync' dann sollten Sie auch Umgang mit' DownloadFileCompleted' werden, was Sie sind offenbar nicht. – jmcilhinney

Antwort

1

Sie verwenden eine asynchrone Methode. Sie benötigen einen Event-Handler, um zu wissen, wann er fertig ist. Verwenden Sie dieses Beispiel und ändern Sie es für Ihre Bedürfnisse, da es auf Ihrem Code basiert.

Sub DownloadFile() 
      Dim address As String = "http://ftp.redhat.com/redhat/cdk/3.1.1/en/source/MD5SUM" 
      Dim locadress As String = "C:\dump\MD5SUM" 
      Dim download As WebClient 
      Try 
       download = New WebClient 
       download.DownloadFileAsync(New Uri(address), locadress) 
       AddHandler download.DownloadFileCompleted, AddressOf FinishDownload 
      Catch ex As Exception 
       MsgBox(ex.Message) 
      End Try 
     End Sub 


     Sub FinishDownload(sender As Object, e As AsyncCompletedEventArgs) 
      Try 

       ' If the request was not canceled and did not throw 
       ' an exception, display the resource. 
       If e.Cancelled = False AndAlso e.Error Is Nothing Then 

       End If 
      Catch ex As Exception 
       MsgBox(ex.Message) 
      End Try 
     End Sub 
+0

Vielen Dank Chilzy, du hast mein Leben gerettet. –

0

Ich mag Chillzy Antwort, aber die Alternative ist nur Downloadfile() anstelle von DownloadFileAsync() verwenden

DownloadFileAsync den Download im Hintergrund starten und Sie haben so etwas wie zu tun, was Chillzy vorgeschlagen benachrichtigt werden, wenn es fertig ist.

Downloadfile wird nicht zurückkehren, bis es fertig ist, so dass es viel einfacher ist.

Der Nachteil Downloadfile ist, dass, wenn Sie auf dem vordergrund Faden einer WinForms UI sind, können keine UI Ereignisse während der Datei-Downloads verarbeitet werden. Wenn es zu lange dauert, erhalten Sie den gefürchteten weißen Bildschirm "nicht reagiert".

Ein weiterer Vorteil der Chillzy Antwort ist, dass Sie auch einen Downloadprogress Event-Handler Fortschritt zu erhalten hinzufügen und eine ProgressBar zu aktualisieren.

Verwandte Themen