Manfred Skrevet 24. januar 2005 Del 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å? Lenke til kommentar
inherit Skrevet 24. januar 2005 Del 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 Lenke til kommentar
Manfred Skrevet 25. januar 2005 Forfatter Del 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 Lenke til kommentar
j000rn Skrevet 25. januar 2005 Del 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(); Lenke til kommentar
Manfred Skrevet 25. januar 2005 Forfatter Del 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 Lenke til kommentar
j000rn Skrevet 25. januar 2005 Del Skrevet 25. januar 2005 Pøh, jeg er da alltid på msn! :-P Lenke til kommentar
Manfred Skrevet 25. januar 2005 Forfatter Del 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 ) Lenke til kommentar
j000rn Skrevet 26. januar 2005 Del 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!"); } Lenke til kommentar
Manfred Skrevet 27. januar 2005 Forfatter Del 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 ) Lenke til kommentar
j000rn Skrevet 27. januar 2005 Del Skrevet 27. januar 2005 Definisjoner: away != offline away ~= online :-P Lenke til kommentar
Manfred Skrevet 27. januar 2005 Forfatter Del Skrevet 27. januar 2005 Du var offline hos meg. ny mailadresse, eller blokkert? Lenke til kommentar
j000rn Skrevet 27. januar 2005 Del Skrevet 27. januar 2005 Venstre hånd: banan Høyre hånd: ehm? Lenke til kommentar
Manfred Skrevet 28. januar 2005 Forfatter Del Skrevet 28. januar 2005 En loff Men da var jo ikke JEG hjemme da Lenke til kommentar
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å