Exemplo n.º 1
0
 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;
     }
 }
Exemplo n.º 2
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);
        }