vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: HTML/Internet/Netzwerk · Internet / Browser / IE   |   VB-Versionen: VB2005, VB200820.11.08
HTTP-Download mit Fortschrittsanzeige

Hier wird gezeigt, wie sich eine Datei aus dem Internet asnychros downloaden lässt inkl. einer Fortschrittsanzeige.

Autor:   Dieter OtterBewertung:     [ Jetzt bewerten ]Views:  16.223 
www.tools4vb.deSystem:  Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Mit Hilfe der System.Net.WebClient Klasse lässt sich eine Datei aus dem Internet sehr einfach asynchros downloaden und dabei auch noch der aktuelle Fortschritt anzeigen.

Erstellen Sie ein neues Windows-Forms Projekt, platzieren auf die Form ein ProgressBar-Control (ProgressBar1), sowie ein Label (lblProgress) und einen Button (Button1).

Imports System.Net
Public Class Form1
 
  ' WebClient für Datei-Download
  Private WithEvents httpClient As WebClient
  ' Datei-Download starten
  Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click
 
    ' Fortschrittsanzeige zurücksetzen    
    lblProgress.Text = "0 KB"
    ProgressBar1.Value = 0
    ProgressBar1.Maximum = 100
 
    ' Neue Instanz der WebClient-Klasse erstellen
    httpClient = New WebClient
 
    ' URL der Datei (hier die vollständige URL eintragen)
    Dim sURL As String = "http://www..."
 
    ' Ziel-Datei (lokal)
    Dim sLocalFile As String = "d:\temp\myFile.exe"
 
    Button1.Enabled = False
    Try
      ' Download asynchros starten, damit wir den Fortschritt 
      ' anzeigen können
      httpClient.DownloadFileAsync(New Uri(sURL), sLocalFile)
      lblProgress.Visible = True
      ProgressBar1.Visible = True
 
    Catch ex As Exception
      MsgBox("Fehler!" & vbCrLf & ex.Message, MsgBoxStyle.Exclamation)
      Button1.Enabled = True
    End Try
  End Sub
  ' Download beendet
  Private Sub httpClient_DownloadFileCompleted(ByVal sender As Object, _
    ByVal e As System.ComponentModel.AsyncCompletedEventArgs) _
    Handles httpClient.DownloadFileCompleted
 
    MsgBox("Download erfolgreich durchgeführt", MsgBoxStyle.Information)
    ProgressBar1.Visible = False
    lblProgress.Visible = False
    Button1.Enabled = True
  End Sub
  ' Fortschrittsanzeige
  Private Sub httpClient_DownloadProgressChanged(ByVal sender As Object, _
    ByVal e As System.Net.DownloadProgressChangedEventArgs) _
    Handles httpClient.DownloadProgressChanged
 
    With ProgressBar1
      ' prozentuale Anzeige des Fortschritts in der ProgressBar
      .Value = e.ProgressPercentage
 
      ' KB-Fortschrittanzeige im Label
      Dim TotalBytes As Long = e.TotalBytesToReceive / 1024
      Dim Bytes As Long = e.BytesReceived / 1024
      If TotalBytes < 1 Then TotalBytes = 1
      If Bytes < 1 Then Bytes = 1
 
      lblProgress.Text = Bytes.ToString & " KB von " & TotalBytes.ToString & " KB"
    End With
  End Sub
End Class

Dieser Tipp wurde bereits 16.223 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Aktuelle Diskussion anzeigen (1 Beitrag)

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht 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