Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 20.11.2020
Сообщений: 6
.NET 5

Как подключить progress bar к ZipFile.ExtractToDirectory();

22.11.2020, 12:58. Показов 3251. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проблема заключается в том что я не знаю как узнать вес распакованных файлов в C#. Если щелкнуть правой клавишей по Zip архиву то можно найти в вкладке архив Total zip size (распакованный размер). План заключался в том чтобы сравнивать вес распакованной информации и текущей . За ранее спасибо.

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
//BackWorkerZipExtract.RunWorkerAsync();   -вызов идет после скачивания архива
 
        // Background worker extract
        private void BackWorkerZipExtract_DoWork(object sender, DoWorkEventArgs e)
        {
            try
            {
                // Zip extract
                
 
                ZipFile.ExtractToDirectory(NameGameZip, PathRoot);
 
 
                //Change the local version to online version
 
 
                File.Delete(NameGameZip);
 
                           
            this.Invoke((MethodInvoker)delegate ()
            {
                this.LabelGameVersion.Text = StrGameVersion;
                this.ProgressBarOperations.Value = 0;
                this.ButtonPlay.Enabled = true;
            });
            
            }
 
 
            catch (Exception ex)
            {
 
                MessageBox.Show($"Error cannot extract: {ex}");
            }
 
 
        }
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.11.2020, 12:58
Ответы с готовыми решениями:

Как изменить форму Progress Bar'a?
Всем привет. Есть ли воможность изменить форму прогрс бара? допустим что бы он был круглым(или полукруглым). И еще, можно ли так же...

Как вычислить шаг прогресса в Progress Bar
Решил попробовать поработать с Progress Bar-ом в windows forms. Интерисует как он работает, например в тех же установщиках, как вычисляется...

Как заполнить progress bar со временем, не прерывая роботы программы
Есть progress bar и есть pictureBox с гиффкой, так от, нужно заполять progressBar каждые 100 мс, дабы можно было в любое время закрыть...

4
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
22.11.2020, 14:33
Лучший ответ Сообщение было отмечено ArkadiyVicont как решение

Решение

Если нужен прогресс бар, то не используйте ZipFile.ExtractToDirectory, извлекайте каждый файл в цикле вручную...
C#
1
2
3
4
5
6
7
8
ZipArchive zip = ZipFile.OpenRead("test.zip");
 
foreach(var zipEntry in zip.Entries)
{
    // zipEntry.ExtractToFile(???)
    // zipEntry.Length ???
    // обновление прогресса???
}
0
0 / 0 / 0
Регистрация: 20.11.2020
Сообщений: 6
22.11.2020, 15:11  [ТС]
Прошу прощения я видимо неправильно задал вопрос. В описании я пишу что, для того чтобы вывести прогресс бар по распаковки мне как раз не хватает переменной по полному размеру распакованного архива. Занимаюсь на C sharp около месяца и могу жестко тупить.
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
22.11.2020, 15:40
Цитата Сообщение от ArkadiyVicont Посмотреть сообщение
мне как раз не хватает переменной по полному размеру распакованного архива
Как вам эта переменная поможет? Вы что собираетесь во время распаковки сканировать папку распаковки, чтобы узнать сколько уже распаковалось?

Да и вообще в коде выше можно легко посчитать размер, добавив одну переменную.
0
0 / 0 / 0
Регистрация: 20.11.2020
Сообщений: 6
22.11.2020, 16:08  [ТС]
Может это и абсурдно, ну да я планировал подсчитывать кол-во распакованного объема и сравнивать. Если я не ошибаюсь я пробовал подсчитать размер файлов в архиве, но он выдавал неверное значение 1.7 архив, 4.5 распакованный, а говорил мне что там 2.8 где-то. Так как я лох в C sharp я не понял код написанный вами. zipEntry.ExtractToFile(Здесь по идеи я должен указать "Имя файла(я.zip", " путь файла C:/" ). zipEntry.Length ??? - что должен был указать вместо вопросиков? // обновление прогресса??? - здесь я так понял нужно вписать MyProgressBar.Value = только чему хз. Могу выйти на голосовую связь в дискорде.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.11.2020, 16:08
Помогаю со студенческими работами здесь

Как сделать progress bar на копирование папки с файлами и папками?
Помогите. Как сделать progress bar на копирование папки с файлами и папками. Если это очень сложно, хотя бы как сделать сообщение об...

Progress Bar
Допустим, нужно сделать так чтобы после нажатия на кнопку, прогресс бар начинал свою работу, и после завершения выдавал Сообщение(Message...

Progress bar
Я собственно совсем новичок в программировании, так что не ругайтесь строго. Вопрос вот в чем, у меня есть одна форма, с определенными...

Progress bar перемотка
Помогите пожалуйста,как реализовать перемотку вручную через progress bar в windows forms.

Progress Bar, как посчитать ориентировочное время работы приложения на сервере?
На сайте реализована такая фича: Клиент кликает кнопку, и всё, что он видит на экране печатается в ворде с помощью Word componentы....


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru