public async Task DownloadAudioAync(Song song, string path, DownloadProgressChangedEventHandler ProgressChanged, AsyncCompletedEventHandler DownloadSongCallback) { try { WebClient Client = new WebClient(); hashCodeConnection.Add(Client.GetHashCode(), song.GetHashCode()); Client.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadSongCallback); Client.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadFileCallback); Client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged); await Client.DownloadFileTaskAsync(song.Uri, path); } catch { } }
private void download_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e) { if (cancelDl) { WebClient wc = (WebClient)sender; wc.CancelAsync(); // Remove current download allDownloads.Remove(getDLfileFromHashCode(wc.GetHashCode())); cancelDl = allDownloads.Count != 0; return; } sum_current = 0; int hash = sender.GetHashCode(); for (int i = 0; i < allDownloads.Count; i++) { DLFile download = allDownloads[i]; if (download.hashCodeWC == hash) { download.received = e.BytesReceived; if (download.totalToreceive == 0) { download.totalToreceive = e.TotalBytesToReceive; sum_total += download.totalToreceive; } } sum_current += download.received; } try { double percentage = (100d * sum_current) / sum_total; progress.Value = (int)(percentage * 100); percentLabel.Text = Math.Round(percentage, 2).ToString() + " %"; } catch (Exception) { } finally { set_progressbar(); } }
public static async void DownloadImageAsync(string link) { string format = Path.GetExtension(link); var wc = new WebClient(); wc.DownloadFileCompleted += DownloadFileCompleted; Console.WriteLine(link); await wc.DownloadFileTaskAsync(link, $"Image {DateTimeOffset.Now.ToUnixTimeMilliseconds()+wc.GetHashCode()}{format}"); }
private void startDL(string programFilename, string finallink, Branch branch, Version version) { //Check if DL folder exists try { Directory.CreateDirectory(dlFolder); } catch (Exception e) { dlFolder = Path.GetTempPath(); exceptionmessage(e.Message); } //Start download WebClient wc = getPreparedWebClient(); Uri uritofile = new Uri(finallink + programFilename); string originalFilename = programFilename; if (easyFilenames) { switch (version) { case Version.MAIN: programFilename = main_easy; break; case Version.HP: programFilename = hp_easy; break; case Version.SDK: programFilename = sdk_easy; break; } programFilename += originalFilename.EndsWith(".msi") ? ".msi" : ".exe"; } if (dlFolder == null) { throw new MissingSettingException("Download path is not set"); } string path = Path.Combine(dlFolder, programFilename); string mb_question = getstring("versiondl"); mb_question = mb_question.Replace("%version", originalFilename); // Start send stats if (MessageBox.Show(mb_question, getstring("startdl"), MessageBoxButtons.YesNo, MessageBoxIcon.Information) != DialogResult.Yes) { return; } switch (version) { case Version.HP: mainui.sendStats(languages.SelectedItem.ToString()); break; case Version.SDK: mainui.sendStats("sdk"); break; default: mainui.sendStats(""); break; } mainui.sendStatsFilename(uritofile); // End send stats mainui.issueNotifyBallon(5000, getstring("dl_started_title"), getstring("dl_started")); wc.DownloadFileAsync(uritofile, path); DLFile download = new DLFile(path, version, wc.GetHashCode()); allDownloads.Add(download); int k = 0; switch (branch) { case Branch.M: k = originalFilename.IndexOf('~'); k = originalFilename.IndexOf('_', k + 1); originalFilename = originalFilename.Substring(0, k); break; default: k = originalFilename.IndexOf("_"); originalFilename = originalFilename.Remove(0, k + 1); k = originalFilename.IndexOf("_"); originalFilename = "LibreOffice " + originalFilename.Remove(k); break; } if (version == Version.MAIN) { mainui.setSubfolder(originalFilename); } }