Téléchargement avec progressbar [Résolu]

Signaler
Messages postés
42
Date d'inscription
samedi 26 mai 2012
Statut
Membre
Dernière intervention
25 décembre 2013
-
Messages postés
15939
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 mai 2021
-
Bonjour , je suis en train de créer un programme permettant de créer un serveur CraftBukkit (equivalent au serveur Minecraft), le programme doit télécharger des fichier , et c'est cela qui pose problème , je cherche un moyen simple de télécharger des fichiers par Url
voici ce que j'ai utilisé mais le fichier ne se télécharger pas ! :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        
            Dim download = New WebClient
        download.DownloadFileAsync(New Uri("http://habdo.comze.com/web_documents/EssentialsSpawn.jar"), "EssentialsSpawn.jar") 'a partir d'ici le fichier ne se télécharge pas !
            TextBox3.Text = "Téléchargement du serveur CraftBukkit ..."


    End Sub
    Public WithEvents download As WebClient
    Private Sub download_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles download.DownloadProgressChanged
        ProgressBar1.Value = e.ProgressPercentage

    End Sub
    Private Sub download_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles download.DownloadFileCompleted

        ProgressBar1.Value = 0
        TextBox3.Text = (TextBox3.Text & Environment.NewLine & "Téléchargement du pluggin EssentialsSpawn")
        Dim download2 = New WebClient 'ici on lance un autre téléchargement
        download2.DownloadFileAsync(New Uri("http://habdo.comze.com/web_documents/EssentialsSpawn.jar"), TextBox4.Text)

    End Sub


Merci !

7 réponses


Bon parce que c'est toi et que c'était noël il n'y a pas longtemps, voici un copier-coller d'un de mes anciens posts adapté à ton cas :
Option Strict On
Imports System.Net

Public Class Form1
    'déclaration d'un webclient
    Dim WithEvents download As New WebClient
    'déclaration d'une liste qui contient les url a telecharger
    Dim MaListe As New List(Of String)
    'déclaration d'un progressbar ajouté au form
    Dim prgBar As New ProgressBar With {.Parent Me, .Width 200}

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'bon évidemment là tu changes tes adresses
        MaListe.Add("http://habdo.comze.com/web_documents/EssentialsSpawn.jar")
        MaListe.Add("http://habdo.comze.com/web_documents/EssentialsSpawn.jar")
        MaListe.Add("http://habdo.comze.com/web_documents/EssentialsSpawn.jar")
        'téléchargement asynchrone du premier fichier de la liste
        download.DownloadFileAsync(New Uri(MaListe(0)), MaListe(0).Substring(MaListe(0).LastIndexOf("/") + 1))
        'effacement du premier fichier dans la liste
        MaListe.RemoveAt(0)
    End Sub

    Private Sub download_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles download.DownloadProgressChanged
        'progressbar mis a jour
        prgBar.Value = e.ProgressPercentage
    End Sub

    Private Sub download_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles download.DownloadFileCompleted
        'si la liste est vide on arrête
        If MaListe.Count = 0 Then Exit Sub
        ' (voir commentaires ci-dessus)
        download.DownloadFileAsync(New Uri(MaListe(0)), MaListe(0).Substring(MaListe(0).LastIndexOf("/") + 1))
        MaListe.RemoveAt(0)
    End Sub
End Class

Bonsoir,

Quel est le message d'erreur rencontré ?

Remarque :
On ne redimensionne pas une variable deux fois. On fait comme ceci :
Public WithEvents download As WebClient
'...
download = new WebClient
Messages postés
42
Date d'inscription
samedi 26 mai 2012
Statut
Membre
Dernière intervention
25 décembre 2013

Enfaite il n'y a pas de message d'erreur , il ne se produit rien tout simplement , mais la je vien de réussir a télécharger le premier fichier , mais après je voudrai que le programme télécharge automatiquement les autres fichier un à un , en tout il y en a 8 .
Merci .

Utilise une List(Of String) dans laquelle tu ajoutes (Add) les adresses de tes fichiers.
Il est inutile de créer une nouvelle instance de WebClient comme tu l'as fait (download2). Dans l'événement DownloadFileCompleted, ton objet 'download' pourra télécharger le fichier suivant de ta List(Of String)
Messages postés
42
Date d'inscription
samedi 26 mai 2012
Statut
Membre
Dernière intervention
25 décembre 2013

Pourrai tu me donner un bout de code car je ne comprend pas comment faire avec une listbox
merci
Messages postés
42
Date d'inscription
samedi 26 mai 2012
Statut
Membre
Dernière intervention
25 décembre 2013

Merci beaucoup , sa marche niquel !
Et le bout de code ?
Messages postés
15939
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 mai 2021
545
BONJOUR

il y'a 2 choses importantes ici, être poli et ne pas avoir la flemme de lire un sujet complètement, surtout quand il n'y a que 6 messages....