C# - Download and Saving images to folder -


i'm trying show form displays label "updating, window close once update has finished" download few images files. put on form's shown.

private void frmextraupdater_shown(object sender, eventargs e)     {          (int = 1; < 8; i++)         {             string _emoticonurl = string.format("https://dl.dropboxusercontent.com/u/110636189/mapleemoticons/f{0}.bmp", i);              webrequest requestpic = webrequest.create(_emoticonurl);              webresponse responsepic = requestpic.getresponse();              image webimage = image.fromstream(responsepic.getresponsestream()); // error              webimage.save(application.startuppath + @"\images\f" + + ".bmp");         }     } 

however.. once form shown, label doesn't show because doesn't load (it insantly downloades images. want show label , start download).

the other problem throws "a generic error occurred in gdi+." on webimgae.save part reason.

why's that?

oh and.. if folder "images" not exist, automatically create it?

thanks!

here jon skeet suggestion:

system.net.webclient webclient = new system.net.webclient(); webclient.downloadfile(string.format("https://dl.dropboxusercontent.com/u/110636189/mapleemoticons/f{0}.bmp", i), application.startuppath + @"\images\f" + + ".bmp"); 

use background worker update ui components

backgroundworker backtask = new backgroundworker();     public frmextraupdater()     {         backtask.dowork += backtask_dowork;         backtask.runworkercompleted += backtask_runworkercompleted;     }     private void frmextraupdater_shown(object sender, eventargs e)     {         yourlabel.text = "downloading";         backtask.runworkerasync();     }      void backtask_dowork(object sender, doworkeventargs e)     {         (int = 1; < 8; i++)         {             system.net.webclient webclient = new system.net.webclient();             webclient.downloadfile(string.format("https://dl.dropboxusercontent.com/u/110636189/mapleemoticons/f{0}.bmp", i), application.startuppath + @"\images\f" + + ".bmp");             backtask.reportprogress(i * (100 / 8), string.format("https://dl.dropboxusercontent.com/u/110636189/mapleemoticons/f{0}.bmp", i));         }     }      void backtask_progresschanged(object sender, progresschangedeventargs e)     {         yourlabel.text = "downloading" + e.userstate.tostring();     }      void backtask_runworkercompleted(object sender, runworkercompletedeventargs e)     {         this.close();      } 

Comments

Popular posts from this blog

c# - How Configure Devart dotConnect for SQLite Code First? -

java - Copying object fields -

c++ - Clear the memory after returning a vector in a function -