Archief - [C#] Bestanden downloaden

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

jimowns

Legacy Member
Hey,

ik ben bezig met een kleine Launcher te maken.
Wanneer je de launcher opent dat hij 4 verschillende bestanden moet downloaden.
wanneer bestand 1 klaar is met downloaden,dan download hij bestand 2.
Als bestand 2 klaar is met downloaden, dan download hij bestand 3.
wanneer bestand 3 klaar is met downloaden,dan download hij bestand 4.

nu zit ik met een probleem.
het bestand nummer 1 lukt voor te downloaden, als 1 gedownload is gaat hij naar bestand 2 voor te downloaden. maar dan springt hij ineens naar 3 en gaat hij in de fout.

ik hoop dat iemand mij hierbij kan helpen.
Code:
       WebClient Client = new WebClient();  // Nieuwe declaratie maken van WebClient
        private void Form1_Load(object sender, EventArgs e)
        {
            //  download 1 :  http://112.201.130.188:80/patch/3DDATA.rar        129MB
            //  download 2 :  http://112.201.130.188/patch/ARMORS.rar           26 MB
            //  download 3 :  http://112.201.130.188/patch/DONATEARMORS.rar     149 KB
            //  download 4 :  http://112.201.130.188/patch/GEM.rar              5.4 kb

            Client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(Client_DownloadProcesChanged);
            Client.DownloadFileCompleted += new AsyncCompletedEventHandler(Client_DownloadHandler);
            Client.DownloadFileAsync(new Uri("http://112.201.130.188/patch/DONATEARMORS.rar"), @"DONATEARMORS.rar", null);
        }

        void Client_DownloadHandler(object sender, AsyncCompletedEventArgs e)
        {
                if (File.Exists(@"DONATEARMORS.rar"))
                {
                    if (progressBar1.Value == progressBar1.Maximum)
                    {
                        Client.DownloadFileAsync(new Uri("http://112.201.130.188/patch/GEM.rar"), @"GEM.rar");
                    }
                }
                if (File.Exists(@"GEM.rar"))
                {
                    if (progressBar1.Value == progressBar1.Maximum)
                    {
                        Client.DownloadFileAsync(new Uri("http://112.201.130.188/patch/ARMORS.rar"), @"ARMORS.rar");
                    }
                }
        }

        void Client_DownloadProcesChanged(object sender, DownloadProgressChangedEventArgs e)
        {
            // throw new NotImplementedException("lol");  // Dit is voor foutmelding te laten zien wanneer de download start
            label3.Text = "Maximum Download Bytes: " + (progressBar1.Maximum = (int)e.TotalBytesToReceive / 100).ToString();
            label1.Text = "Byts Downloaded: " + (progressBar1.Value = (int)e.BytesReceived / 100).ToString();
            this.Text = e.ProgressPercentage.ToString() + "% Downloaded";   // Percentage in titlebalk laten zien voor download. 
            progressBar2.Increment(100);
        }

Mvg, Jim

Moto

Legacy Member
Wel zo opt eerste zicht
Code:
download 1 -> completed 
                -> if (File.Exists(@"DONATEARMORS.rar")) == true
                         -> start download 2
                         -> completed 
                         -> if (File.Exists(@"DONATEARMORS.rar")) == true
                                  -> start download 2 opnieuw <- [B]FOUT![/B]
                         -> if (File.Exists(@"GEM.rar")) == true
                                   -> start download 3
enz enz

voze hack -> if (File.Exists(@"DONATEARMORS.rar") && !File.Exists(@"GEM.rar") && !File.Exists(@"ARMORS.rar") )



Kunt misschiens ook naar parallel programming eens bekijken
Threading in C# - Part 5 - Parallel Programming
vb in dit geval Task.Factory -> ContinueWith

en dan nog een advanced reactive extension sampleke dat ik laats tegen kwam voor file downloads
http://social.msdn.microsoft.com/Forums/en-US/rx/thread/e01fcbb4-652b-4268-b2f5-237a8d01e9df/

jimowns

Legacy Member
Sorry ik heb het niet goed uitgelegd.
mijn Form crasht, omdat hij dan ineens 2 downloads wilt uitvoeren terwijl het maar 1 per 1 aankan.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan