-
Автор темы
- #1
Всем привет! Искал я на просторах интернета полезной информации по шарпу, и набрел на
Итак, вот сам код:
Credits: некий Aison с другого форума
P.S.: также прошу присылать свои найденные интересные фичи для C# или C++ мне в ВК или Телеграм
Пожалуйста, авторизуйтесь для просмотра ссылки.
тему (noad, really) с немного сломанным кодом (хотя скорее похоже на пастинг) реализации показа прогресса скачивания файла из интернета и самой скорости. Поскольку, у меня пока нет идей для +/- крупных статей, я буду выкладывать интересные фичи из интернета для ваших программ на C#.Итак, вот сам код:
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.IO;
using System.Net;
namespace TestDownload
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
System.Net.WebClient webClient = new System.Net.WebClient();
Stopwatch sw = new Stopwatch();
void webClient_DownloadProgressChanged(object sender, System.Net.DownloadProgressChangedEventArgs e)
{
try
{
if (labelX1.Text != (Convert.ToDouble(e.BytesReceived) / 1024 / sw.Elapsed.TotalSeconds).ToString("0"))
labelX2.Text = (Convert.ToDouble(e.BytesReceived) / 1024 / sw.Elapsed.TotalSeconds).ToString("0.00") + " КБ/с";
if (progressBarX1.Value != e.ProgressPercentage)
progressBarX1.Value = e.ProgressPercentage;
if (labelX1.Text != e.ProgressPercentage.ToString() + "%")
labelX1.Text = e.ProgressPercentage.ToString() + "%";
labelX3.Text = (Convert.ToDouble(e.BytesReceived) / 1024 / 1024).ToString("0,00") + " МБ" + " / " + (Convert.ToDouble(e.TotalBytesToReceive) / 1024 / 1024).ToString("0.00") + " МБ";
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
void webClient_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
MessageBox.Show(this, "Загрузка завершена", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);
progressBarX1.Value = 100;
labelX1.Text = "Загрузка завершена";
}
private void button_skacat_Click(object sender, EventArgs e)
{
Uri uri = new Uri(" "); // Замените на свой uri файла
webClient.DownloadFileAsync(uri, @" "); // Замените на свой путь для скачивания файла
webClient.DownloadProgressChanged += new System.Net.DownloadProgressChangedEventHandler(webClient_DownloadProgressChanged);
webClient.DownloadFileCompleted += new System.ComponentModel.AsyncCompletedEventHandler(webClient_DownloadFileCompleted);
System.Diagnostics.Process proc = new System.Diagnostics.Process();
sw.Start();
}
}
// Также нужно заменить все элементы формы на свои
}
P.S.: также прошу присылать свои найденные интересные фичи для C# или C++ мне в ВК или Телеграм
Последнее редактирование: