С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
0 / 0 / 2
Регистрация: 15.05.2015
Сообщений: 73
1
.NET 4.x

Прогресс загрузки файлов в ProgressBar

06.02.2016, 21:44. Показов 4087. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, есть вот такой вот код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Net;
using System.IO;
 
namespace Metamorphosius_Launcher
{
    public partial class DownloadsForm : Form
    {
        public DownloadsForm()
        {
            InitializeComponent();
            try {
                string[] ThemeBackground_image = File.ReadAllLines(@"Launcher_Settings\Settings_L.data");
                String[] ThemeBackground_Image = ThemeBackground_image[0].Split(new char[] { '=' }, StringSplitOptions.None);
                switch (ThemeBackground_Image[1])
                {
                    case ("SU"):
                        {
                            BackgroundImage = Resource.SovietBG00;
                            BackgroundImageLayout = ImageLayout.Stretch;
                            DoubleBuffered = true;
                        }
                        break;
 
                    case ("YS"):
                        {
                            BackgroundImage = Resource.YuriBG00;
                            BackgroundImageLayout = ImageLayout.Stretch;
                            DoubleBuffered = true;
                        }
                        break;
 
                    case ("AE"):
                        {
                            BackgroundImage = Resource.AlliedBG00;
                            BackgroundImageLayout = ImageLayout.Stretch;
                            DoubleBuffered = true;
                        }
                        break;
 
                    default:
                        {
                            BackgroundImage = Resource.SovietBG00;
                            BackgroundImageLayout = ImageLayout.Stretch;
                            DoubleBuffered = true;
                        }
                        break;
                }
            }
            catch
            {
                BackgroundImage = Resource.SovietBG00;
                BackgroundImageLayout = ImageLayout.Stretch;
                DoubleBuffered = true;
            }
            }
        public WebClient Loader(string uri, string path)
        {
            WebClient web = new WebClient();
            Uri Uri = new Uri(uri);
            web.DownloadFileAsync(Uri, @path);
            return web;
        }
 
        List<string> uriAndPath = new List<string>();
 
        private void dl_button_Click(object sender, EventArgs e)
        {
            string line;
            StreamReader file = new StreamReader(@"Launcher_Settings/DownList.data"/*, Encoding.UTF32*/);
            while ((line = file.ReadLine()) != null)
            {
                uriAndPath.Add(line);
            }
            file.Close();
 
            WebClient wc;
            for (int i = 0; i < uriAndPath.Count; i++)
            {
                wc = Loader(uriAndPath[i], uriAndPath[++i]);
                while (wc.IsBusy)
            }
        }
    }
}
собственно что он делает:
Подгружает ссылки и названия будущих скачанных файлов и потом загружает их.
Вопрос в следующем:
Как мне привязать это к ProgressBar'у ?

И да, на форумах порылся, ничего не понял.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.02.2016, 21:44
Ответы с готовыми решениями:

Отобразить в ProgressBar прогресс поиска файлов
Доброго времени суток. Я написал программу которая ищет файлы на локальных дисках и хотел бы...

Прогресс обновления в ProgressBar
Здравствуйте, у меня есть готовый код который обновляет приложение. Я хочу чтобы прогресс...

Отобразить в ProgressBar прогресс сортировки
Парни, помогите пожалуйста. У меня на кнопку происходит сортировка, нужно в прогресс бар отображать...

ProgressBar - отобразить прогресс скачивания файла
Народ обясните пожалуста как он работает.Тоесть вот мне надо скачать файл (например архив какойто...

7
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,273
Записей в блоге: 9
06.02.2016, 22:00 2
А что прогрессбар должен отображать?
У него есть свойсто Value его и задавайте.
1
0 / 0 / 2
Регистрация: 15.05.2015
Сообщений: 73
06.02.2016, 22:47  [ТС] 3
И снова здравствуйте)
Проблемка в том, что я не понимаю как это осуществить.
0
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,273
Записей в блоге: 9
06.02.2016, 23:03 4
Вот так https://msdn.microsoft.com/ru-... .110).aspx
Вложения
Тип файла: rar Progress.rar (42.8 Кб, 50 просмотров)
2
0 / 0 / 2
Регистрация: 15.05.2015
Сообщений: 73
07.02.2016, 10:15  [ТС] 5
Интересная вещь получается...
Но я не понимаю как мне прикрутить исполнение WebClient'а ?
Он у меня должен скачивать файлы, и вот нужно как-то подкрутить, можете подсказать?
0
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,273
Записей в блоге: 9
07.02.2016, 10:24 6
Повторяю вопрос:
Цитата Сообщение от Sanya_sa Посмотреть сообщение
А что прогрессбар должен отображать?
Вы хотите мониторить процесс загрузки одного файла или сколько файлов из списка уже загружены?

Например для второго :

C#
1
2
3
4
5
6
7
8
9
            progresBar.Max = uriAndPath.Count;
 
            WebClient wc;
            for (int i = 0; i < uriAndPath.Count; i++)
            {
                progresBar.Value = i;
                wc = Loader(uriAndPath[i], uriAndPath[++i]);
                while (wc.IsBusy)
            }
Для процесса загрузки одно нужно знать его размер и следить сколько уже загружено (считать в процентах)
1
0 / 0 / 2
Регистрация: 15.05.2015
Сообщений: 73
07.02.2016, 13:29  [ТС] 7
То есть нужно перед загрузкой опрашивать "ссылку" и получать размер каждого файла, суммировать всё и считать в процентах сколько готово из всего?

Отображать - процесс скачивания файлов.
0
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,273
Записей в блоге: 9
07.02.2016, 13:37 8
Лучший ответ Сообщение было отмечено Кузнецов Михаил как решение

Решение

Цитата Сообщение от Кузнецов Михаил Посмотреть сообщение
То есть нужно перед загрузкой опрашивать "ссылку" и получать размер каждого файла, суммировать всё и считать в процентах сколько готово из всего?
Это первое что в голову приходит. У меня у самого проблема была когда конвертировал файлы размеры которых могли доходить до гигабайтов и нужно было отображать идет ли процесс и его процент выполнения, а хз может там зависло все). Я ее так и не решил до конца. Сам процесс я отобразить смог там нет проблем, но вот процент выполнения не смог, тк у меня входной файл был больше выходного (особенности работы конвертера).
У вас же фалы одного размера значит:
1) получаем ссылку на файл
2) узнаем его размер
3) определяемся с путями (куда сохранять)
4) и в просессе сохранения мониторим размерфайла который сохраняем, сравниваем его с тем размером который получили в пункте 2
5) считаем процент "скачаности"

Как то так.
1
07.02.2016, 13:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.02.2016, 13:37
Помогаю со студенческими работами здесь

ProgressBar не показывает прогресс выполнения программы
Друзья, помогите разобраться с потоками! Сколько не мучаюсь, ничего не получается. Есть главная...

Прогресс загрузки страницы в WebBrowser
Как узнать прогресс загрузки страницы в WebBrowser? В win forms у него было событие...

Передать различный прогресс из одного BackgroundWorker разным ProgressBar
Добрый день. В коде выполняется некая задача, BackgroundWorker1 рапортует в ProgressBar1 о полном...

Вывести скачивание файлов в отдельный поток и отобразить прогресс в ProgressBar'е
Добрый всем день. Хочу вывести скачивание файлов в отдельный поток и отобразить прогресс в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru