.NET 4.x Распаковка ZIP архива / DotNetZip - C#
Формулировка задачи:
Доброго времени суток уважаемые!
Столкнулся с казалось бы, элементарной задачей: Это прототип функции для распаковки файла. Можно как-то узнать, по какому пути относительно архива этот файл располагается, до того, как мы будем его распаковывать?
Благодарю за внимание!
распаковать ZIP архив в указанную папку
, отображая процесс распаковки в прогресс-баре. Почитал форум, почитал гугл... Скачал DotNetZlib, и всё казалось бы хорошо, но пример "распаковки с прогрессбаром" с их сайта помимо того, что в оригинале своём не работоспособен (изначально) - после корректировки, данный пример отображает прогресс распаковки файлов в их количественном составе, что не есть хорошо. Предположим, в архиве 2 файла, 1 файл на 500Мб, второй на 10. Прогрессбар подобной распаковки, выглядит, мягко говоря, абсурдно. А если в архиве 1 большой файл, то как такового прогрессбара можно сказать вообще нет и складывается впечатление, что программа зависла, что так же не хорошо. Собственно, вопрос: можно ли как-то отображать не кол-во файлов "Распаковано/Всего", а именно сам прогресс распаковки? Лет 10 назад я помню писал архиватор на Си и прогрессбар вычислялся из общего размера архива с шагом равным размеру буфера. Можно как-то добиться подобного от этой библиотеки? Ещё я заметил, что библиотека не дружит с русскими именами (в данный момент не принципиально, но не приятно). Или, возможно есть какая-то другая библиотека, более оптимально подходящая для данной задачи? И... возможно кто-то уже сталкивался с подобным вопросом при работе с DotNetZipfile.Extract(string path, Options);
P.S. Нашел класс ZipFile в .NET 4.5+. Подскажите пожалуйста, правильно ли я понял, что он умеет только "просто паковать/распаковывать" файлы, аля утилита командной строки, без каких либо доп. опций и отображения прогресса?
Решение задачи: «.NET 4.x Распаковка ZIP архива / DotNetZip»
textual
Листинг программы
ZipArchiveEntry - класс Тип ZipArchiveEntry предоставляет следующие члены. Свойства Archive - Получает ZIP-архив, к которому принадлежит запись. CompressedLength - Получает сжатый размер записи в ZIP-архиве. FullName - Получает относительный путь записи в ZIP-архиве. LastWriteTime - Получает или задает время последнего изменения записи в ZIP-архиве. Length - Получает несжатый размер записи в ZIP-архиве. Name - Получает имя файла записи в ZIP-архиве.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д