public void myWebClient_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e) { if (Program.cancel) { return; } completed = true; Program.dlpfad = ""; sw.Stop(); sw.Reset(); Console.SetCursorPosition(1, top); Funktionen.Lösche_Zeile(); Funktionen.Lösche_Zeile(); Funktionen.Lösche_Zeile(); Console.SetCursorPosition(1, top); Console.WriteLine("[ 100% ] Download Complete!"); // hier besser aufgehoben da es ein Callback ist ... funzt aber nicht. soweit kommt es gar nicht :P for (int i = 0; i < speed_durchschnitt.Length - 1; i++) { speed_durchschnitt[i] = 0; } }
/// <summary> /// Downloadet alle Dateien einer Index Of Webseite /// </summary> /// <param name="url">komplette URL</param> /// <param name="datei">datei=Dateiname.Endung</param> /// <param name="dir">aktuelles Verzeichnis</param> /// <param name="offlinepfad">aktuelles Verzeichnis</param> /// <returns></returns> public string LadeDatei(string url, string datei, string dir, string offlinepfad) { string myStringWebResource = null; string pfad = downloader.GetSpeicherpfad() + dir.Replace("/", @"\"); string file = pfad + dir + datei.Replace("%20", downloader.GetLeerzeichen()); pfad = pfad.Replace("%20", " "); offlinepfad = offlinepfad.Replace("/", @"\"); save_path = downloader.GetSpeicherpfad() + offlinepfad; save_path = save_path.Replace("%20", " "); if (!Directory.Exists(save_path)) { Directory.CreateDirectory(save_path); } Program.myWebClient = new WebClient(); Program.myWebClient.DownloadFileCompleted += new System.ComponentModel.AsyncCompletedEventHandler(myWebClient_DownloadFileCompleted); Program.myWebClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(myWebClient_DownloadProgressChanged); // to check for the file in the callback handler pathToCheck = save_path + datei; if (File.Exists(save_path + datei.Replace("%20", " "))) { return("Datei schon vorhanden"); } myStringWebResource = url + datei; Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine("Lade {0} runter ....", datei.Replace("%20", " ")); Console.ForegroundColor = ConsoleColor.White; datei = datei.Replace("%20", " "); try { completed = false; sw.Start(); complete_path = save_path + datei; Program.myWebClient.DownloadFileAsync(new Uri(myStringWebResource), complete_path); Program.dlpfad = complete_path; // für Main - falls Programm geschlossen wird. Console.WriteLine("File: {0}", pathToCheck.Replace("%20", " ")); top = Console.CursorTop; Console.CursorVisible = false; while (!completed) { if (Console.CursorTop + 10 > Console.BufferHeight) { Funktionen.Buffer_höhe_erhöhen(200); } Thread.Sleep(200); Console.SetCursorPosition(0, top); Funktionen.Lösche_Zeile(); Funktionen.Lösche_Zeile(); Console.SetCursorPosition(0, top); aktueller_speed(pathToCheck, speed, sw, dl_total, dl_aktuell, dl_progress); Console.WriteLine(statusstring); } Console.CursorVisible = true; } catch (WebException e) { Console.WriteLine("Bitte nochmal versuchen: " + e.ToString()); } Console.ForegroundColor = ConsoleColor.Red; return("\nDownload der Datei abgeschlossen, gespeichert in: " + pfad); }