Résolu COMMENT RECUPERER LE TEMPS DE TELECHARGEMENT D'UN FICHIER ET L'AFFICHER DANS UNE PROGRESS BAR C#

KSS57-OFFICIEL

C#/C++ Developer
Premium
Inscription
7 Juillet 2013
Messages
1 883
Réactions
365
Points
5 148
Bonjour :RG:

J'ai créer une application et j'ai implanter un système de Mise à Jour et j'aimerais savoir comment récupérer le temps de téléchargement de la mise à jour et me l'afficher dans une Progress Bar,

Merci d'avance :)

@DEVR0
 
D

delete221380

Salut, :membre:

Code:
WebClient client =newWebClient();
        string desktop =Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
        client.DownloadProgressChanged+=newDownloadProgressChangedEventHandler(client_DownloadProgressChanged);
        client.DownloadFileCompleted+=newAsyncCompletedEventHandler(client_DownloadFileCompleted);
        client.DownloadFileAsync(newUri("lien de téléchargement"), desktop +"nomdufichier.extension");
Le premier code est à mettre pour télécharger la mise à jour, les fonctions ci-dessous seront également exécutées.
Code:
void client_DownloadProgressChanged(object sender,DownloadProgressChangedEventArgs e)
    {
        progressBarTelechargement.Maximum=(int)e.TotalBytesToReceive/100;
        progressBarTelechargement.Value=(int)e.BytesReceived/100;
    }

    void client_DownloadFileCompleted(object sender,AsyncCompletedEventArgs e)
    {
        labelTelechargement.Text="Le téléchargement est terminé";
    }

Tu peux également faire un système qui indique le débit et avec un BackgroundWorker tu peux aussi mettre en pause ou arrêter le téléchargement ;) comme ici :
 

ChuteAa ©

Chacun sa croix !!
Premium
Inscription
3 Décembre 2013
Messages
1 890
Réactions
1 204
Points
13 998
Yo pour récupérer des info sur un Téléchargement ,

using System.Net;

//Cette Méthode ci-dessous ajoute les pourcentages de téléchargement en cours

Code:
void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
        {
            double bytesIn = double.Parse(e.BytesReceived.ToString());
            double totalBytes = double.Parse(e.TotalBytesToReceive.ToString());
            double percentage = bytesIn / totalBytes * 100;
          
            Label1.Text = "Ton Text : " + Convert.ToInt32(percentage) + " %";
        }
//Dans ton démarrage de téléchargement tu ajoute ceci

Code:
WebClient client = new WebClient();
            client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);

Ses pour un affichage en %

Salut, :membre:

Code:
WebClient client =newWebClient();
        string desktop =Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
        client.DownloadProgressChanged+=newDownloadProgressChangedEventHandler(client_DownloadProgressChanged);
        client.DownloadFileCompleted+=newAsyncCompletedEventHandler(client_DownloadFileCompleted);
        client.DownloadFileAsync(newUri("lien de téléchargement"), desktop +"nomdufichier.extension");
Le premier code est à mettre pour télécharger la mise à jour, les fonctions ci-dessous seront également exécutées.
Code:
void client_DownloadProgressChanged(object sender,DownloadProgressChangedEventArgs e)
    {
        progressBarTelechargement.Maximum=(int)e.TotalBytesToReceive/100;
        progressBarTelechargement.Value=(int)e.BytesReceived/100;
    }

    void client_DownloadFileCompleted(object sender,AsyncCompletedEventArgs e)
    {
        labelTelechargement.Text="Le téléchargement est terminé";
    }

Tu peux également faire un système qui indique le débit et avec un BackgroundWorker tu peux aussi mettre en pause ou arrêter le téléchargement ;) comme ici :
Aussi Oui :p
 
Dernière édition par un modérateur:

KSS57-OFFICIEL

C#/C++ Developer
Premium
Inscription
7 Juillet 2013
Messages
1 883
Réactions
365
Points
5 148
Yo pour récupérer des info sur un Téléchargement ,

using System.Net;

//Cette Méthode ci-dessous ajoute les pourcentages de téléchargement en cours

Code:
void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
        {
            double bytesIn = double.Parse(e.BytesReceived.ToString());
            double totalBytes = double.Parse(e.TotalBytesToReceive.ToString());
            double percentage = bytesIn / totalBytes * 100;
         
            Label1.Text = "Ton Text : " + Convert.ToInt32(percentage) + " %";
        }
//Dans ton démarrage de téléchargement tu ajoute ceci

Code:
WebClient client = new WebClient();
            client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);

Ses pour un affichage en %
Je ne doit pas mettre le code dans un Timer pour que sa actualise a chaque fois ? :)
 

KSS57-OFFICIEL

C#/C++ Developer
Premium
Inscription
7 Juillet 2013
Messages
1 883
Réactions
365
Points
5 148
Nope regarde la fonction "Changed", ça actualise l'affichage de ta progressBar dès que la progression du téléchargement a changée. Par contre tu peux faire un BackGroundWorker et utiliser try catch pour le téléchargement (en cas d'erreur)
Ah oui je regarderai un peut a ça :) donc si j'ai mit ça c'est bon ? :)
1.PNG

Et ca c'est la fonction que j'ai copier coller que l'on ma dit de mettre :)
2.PNG


@DEVR0 ? :)
 

Fichiers joints

  • 1.PNG
    1.PNG
    22.5 KB · Affichages: 0
Dernière édition par un modérateur:
Haut