Bonjour,
Je cherche à faire une progress bar pour voir l'avancement de mon téléchargement, mais je ne sais pas comment m'y prendre.
Pour le téléchargement j'utilise la méthode DownloadFile.
Es ce que quelqu'un pourrai m'aider s'il vous plait ?
Bonjour,
Je cherche à faire une progress bar pour voir l'avancement de mon téléchargement, mais je ne sais pas comment m'y prendre.
Pour le téléchargement j'utilise la méthode DownloadFile.
Es ce que quelqu'un pourrai m'aider s'il vous plait ?
avec textbox1 l'url du fichier à telecharger.private void Button1_Click(object sender, System.EventArgs e)
{
ProgressBar1.Visible = true;
ProgressBar1.Minimum = 1;
ProgressBar1.Value = 1;
ProgressBar1.Step = 1024;
MemoryStream MemoryStreamImage = new MemoryStream();
WebRequest myWebRequest = WebRequest.Create(TextBox1.Text);
WebResponse myWebResponse = myWebRequest.GetResponse();
ProgressBar1.Maximum = Convert.ToInt32(myWebResponse.ContentLength);
Stream StreamImage = myWebResponse.GetResponseStream();
byte[] b = new byte[1024];
int bytesRead = 0;
while ((bytesRead = StreamImage.Read(b, 0, b.Length)) > 0)
{
// MemoryStreamImage.Write(b, 0, b.Length);
MemoryStreamImage.Write(b, 0, bytesRead);
ProgressBar1.PerformStep();
}
StreamImage.Close();
PictureBox1.Image = new Bitmap(MemoryStreamImage);
MemoryStreamImage.Close();
myWebResponse.Close();
}
moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom
Thomas LEBRUN: MCAD.NET, MCTS (Win et Web), MCPD(Win et Web) & Microsoft MVP Client Application Development
WPF par la pratique, mon livre sur WPF ! (également disponible ici ou là)
A la découverte de .NET
Je vous remercie beaucoup, je regarde ca et je vous dis.
Je vous remercie, ca fonctionne, mais j'ai un petit souci, je ne sais pas ou mettre le chemin de destination pour le stocker surmon disque dur !
bah euh n'importe où
dans le code, on telecharge l'image et on le met le stream dans l'objet image. après tu fais .
si c'est un autre fichier, il faut passer par un autre stream je pense pour l'ecrire sur le disque.
Code : Sélectionner tout - Visualiser dans une fenêtre à part pictureBox1.Image.Save("chemin ou sauvegarder");
moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom
ok, je vois un peu comment ca marche. Pour le moment je ne suis pas encore sur mon pc donc je pose des questions entre temps
Dans le cas ou je télécharge un fichier EXE et que je veu l'enregistrer sur le c:\
suis je obligé de passé par un autre stream, ou y a t'il quelquechose de plus simple du sytle "File" ?
:
regarde tous les types dobjets qui peuvent travailler à partir d'un stream quelconque. ensuite, plusieurs essais devraient te permettre de trouver. si tu trouve n'hesite à enrichir notre connaissance par la meme occasion.
si j'ai le temps, je regarderai de mon coté
moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom
Ca y est, je pense avoir trouver... mais dites moi quand meme ce que vous en pensez
En tous cas je crois qu'on peut faire mieu, je continuerai a chercher.
Voili voilou, j'ai essayer directement de passer le FileStream pour le "myWebResponse.GetResponseStream();" mais ce n'est pas compatible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 void Button1Click(object sender, System.EventArgs e) { ProgressBar1.Visible = true; ProgressBar1.Minimum = 1; ProgressBar1.Value = 1; ProgressBar1.Step = 1024; MemoryStream MemoryStreamImage = new MemoryStream(); WebRequest myWebRequest = WebRequest.Create("chemin du fichier sur le net"); WebResponse myWebResponse = myWebRequest.GetResponse(); ProgressBar1.Maximum = Convert.ToInt32(myWebResponse.ContentLength); Stream StreamImage = myWebResponse.GetResponseStream(); FileStream fs = File.Create(@"chemin du fichier sur le disque"); byte[] b = new byte[1024]; int bytesRead = 0; while ((bytesRead = StreamImage.Read(b, 0, b.Length)) > 0) { //MemoryStreamImage.Write(b, 0, bytesRead); fs.Write(b,0, bytesRead); ProgressBar1.PerformStep(); } StreamImage.Close(); fs.Close(); MemoryStreamImage.Close(); myWebResponse.Close(); }
Si vous voyez des améliorations dites moi :o
En attendant, si ton pb est OK, pense au tag Résolu
Thomas LEBRUN: MCAD.NET, MCTS (Win et Web), MCPD(Win et Web) & Microsoft MVP Client Application Development
WPF par la pratique, mon livre sur WPF ! (également disponible ici ou là)
A la découverte de .NET
En revanche je ne comprends pas pourquoi mon téléchargement ne fais pas toute ma barre de progression ?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager