Manfred Skrevet 24. januar 2005 Skrevet 24. januar 2005 Sitter og funderer på en liten ting. Holder på med en liten sak som skal laste ned en exe-fil fra http og lagre den på lokal maskin. Ved å bruke denne, så funker det (men tar tid og masse ressurser) WebRequest req = HttpWebRequest.Create("http://decon.no/mudo/test.exe"); WebResponse res = req.GetResponse(); Stream s = res.GetResponseStream(); byte[] file = new byte[res.ContentLength]; FileStream fs = new FileStream(path + "/test.exe", FileMode.CreateNew); for(i = 0; i < (int)res.ContentLength; i++) { s.Read(file, i, 1); } fs.Write(file, 0, file.Length); fs.Close(); s.Close(); Men hvis jeg prøver å inkrementere i med f.ex 1024 for hver runde (og sette count på Stream.Read(byte[] buffer, int offset, int count) til 1024, i stedet for 1) så blir fila feil på maskinen etter at den er lastet ned. Noen forslag til hva som skjer, evt forslag til en bedre måte å gjøre dette på?
inherit Skrevet 24. januar 2005 Skrevet 24. januar 2005 (endret) Med å bruke denne, så funker det (men tar tid og masse ressurser) Lurer på om det kan være en ide å slenge det inn i en thread. Kanskje det vil hjelpe deg? ikke vet jeg... Jeg la med et "live update program". Det er ikke jeg som har skrevet det, men det funker fint... Bare å kikke litt rundt i koden... Kan ikke huske at det tar lang tid eller bruker mye ressurser Updater.Net.zip Endret 24. januar 2005 av inherit
Manfred Skrevet 25. januar 2005 Forfatter Skrevet 25. januar 2005 hjertelig takk Ved første øyekast ser dette ut til å være akkurat det jeg trenger. Nå gjenstår det bare for meg å knote meg gjennom og lese vb Men jeg lurer fortsatt på hvorfor koden min feilet når jeg prøvde å laste ned en og en kb da
j000rn Skrevet 25. januar 2005 Skrevet 25. januar 2005 Letteste måte å laste ned fil: using( WebClient wc = new WebClient() ) { wc.DownloadFile("http://decon.no/mudo/test.exe", path + "\\test.exe"); } Ellers: * ContentLength er ikke alltid tilgjengelig ved nedlastning fra web, så det kan være dumt å sette av en viss størrelse til fila. * Er kanskje lurt å dumpe det man laster ned til fil fortløpende for å spare minne. * Vet ikke hva du gjorde som ikke virket med større buffere, sikkert bare en liten logisk feil... WebRequest req = HttpWebRequest.Create( "http://decon.no/mudo/test.exe" ); WebResponse res = req.GetResponse(); Stream s = res.GetResponseStream(); FileStream fs = new FileStream(path + "\\test.exe", FileMode.CreateNew); byte[] buff = new byte[ 4096 ]; int count = 0; while( 0 != (count = s.Read(buff,0,buff.Length)) ) { fs.Write(buff,0,count); } fs.Close(); s.Close();
Manfred Skrevet 25. januar 2005 Forfatter Skrevet 25. januar 2005 (endret) Hadde du bare vært på msn i går, så hadde dette gått så utrolig mye kjappere Endret 25. januar 2005 av Manfred
Manfred Skrevet 25. januar 2005 Forfatter Skrevet 25. januar 2005 Takk for at du sparte meg for et par dagers jobb *klemmelittpåJørn* (ja, jeg måtte svare her, for du var jo IKKE på msn )
j000rn Skrevet 26. januar 2005 Skrevet 26. januar 2005 btw, å lage den i en tråd er også ganske enkelt... siden du spurte om det (i feil tråd): new Thread( new ThreadStart(DownLoad) ).Start(); private void DownLoad() { using( WebClient wc = new WebClient() ) { wc.DownloadFile("http://decon.no/mudo/test.exe", path + "\\test.exe"); } MessageBox.Show("Ferdig!"); }
Manfred Skrevet 27. januar 2005 Forfatter Skrevet 27. januar 2005 Fjernet det fra feil tråd. Så det i dag hehe. Er ikke så lett å være konsentrert om mye på en gang på jobb og ja, jeg veit hvordan jeg lager en ny tråd, men gadd rett og slett ikke hehe. (Du var ikke online i min liste når jeg la inn dette )
j000rn Skrevet 27. januar 2005 Skrevet 27. januar 2005 Definisjoner: away != offline away ~= online :-P
Manfred Skrevet 27. januar 2005 Forfatter Skrevet 27. januar 2005 Du var offline hos meg. ny mailadresse, eller blokkert?
Manfred Skrevet 28. januar 2005 Forfatter Skrevet 28. januar 2005 En loff Men da var jo ikke JEG hjemme da
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå