DotFix :: Портал разработки и защиты программ
Главная
Программы
Статьи
Разное
Форум
Контакты
Автор: Antiloop Дата публикации: 10.6.04

Zip-Zap. Как заZIPить и заUNZIPить файл

Для большинства своих случаев я пользуюсь архиватором WinZip самой последней версии, потому что он удобный, а главное - красивый. Ну и еще потому что формат архивов Zip самый популярный во всех частях Сети. (Хотя RARитеты еще кое-где встречаются).

Так вот, вместо того, чтобы восхвалять этот архиватор во всех инстанциях, попробуем лучше начать юзать его по полной программе.

Когда я делал одну игрушку (это было очень давно) у меня получилось огромное количество зауковых файлов и просто немеренное количество графики. Общее количество файлов зашкаливало за две сотни (как уже говорилось это было давно, я был начитан всяких умных книжек и понятие не имел о методах Clip и тому подобных). Тогда-то у меня и возникла умная мысль заархивировать все это хозяйство, а затем, когда программы запускается - разархивировать куда-нибудь типа Windows\Temp и пользоваться. После недели издевательств над файлом unzip.exe в попытках сотворить хоть что-нибудь, я узнал как запускать программы с помощью функций Shell, ShellExecute, запускать окно во всевозможных его состояниях... вобщем я много что узнал, только разархивировать у меня ничего не получилось.

Ну потом у меня было еще много разных умных мыслей и я постепенно забыл о всех этих позорных корчах, переключившись на более благородные деяния. И так я сидел до сего момента, пока не встретил на конференции улиц VB вопрос про архивацию файлов, который заставил меня вспомнить об этой моей вековой давности проблеме (спасибо, Vigrin).

Покопавшись в своих залежах ActiveX я натолкнулся на одну библиотеку, а чуть позже еще на два контрола. Библиотека мне не понравилась, поэтому описывать ее не буду.

Скажу сразу: откуда контролы ко мне попали я не помню, поэтому и благодарности от меня не дождетесь :). Производители контролов - немецкие братья по разуму, только версия контролов меньше единички, что подразумевает некое количество багов.

Zip


Все элементарно. Свойству ZipFileName должно быть присвоено полное имя файла, затем вызываем метод AddFileToZip с указанным именем файла для архивации и готово! Повторяем второй пункт до победного конца. При этом, контрол выдает сообщение путем события ZipMessage(ByVal Message As String). Самые любопытные могут этот Message распечатать.

В добавок, контрол имеет полезные булевы свойства, которые вы можете наблюдать в диалоге Add To Archive WinZip'а. Это:
NoPathInfo - сохранение исходного пути файла.
NoDirEntries - вложенные директории
System - системные файлы
и другие.

Unzip


Тоже просто. Сначала свойству Filename присваиваем имя архива. Затем, свойству DestinationDir имя папки назначения. Вот затем будет чуточку посложнее. Если хотите разархивировать все и сразу, то примените метод UnzipAll. Если один файл - то UnzipFile и укажите имя файла. В чем сложность? А если пользователь не знает имени файла? Используйте метод ListAllFiles. При этом у контрола начнется излияние информации через событие:

CODE NOW!

VFunzip1_FileInfo(ByVal TotalSize As Long, ByVal FileSize As Long, ByVal Factor As Integer, ByVal Month As Integer, ByVal Day As Integer, ByVal Year As Integer, ByVal Hour As Integer, ByVal Minute As Integer, ByVal Filename As String, ByVal Path As String, ByVal Method As String, ByVal CRC As Long, ByVal Crypt As Boolean)


Если приглядеться, можно найти здесь много разных полезных свойств: имя файла, дату его создания, размеры, сжатый и исходный и еще много чего.

Сколько в архиве файлов, столько раз будет происходить это событие. Так что не мешкайте, и составляйте список файлов и их свойств.

Так что используя эти два контрола, вы можете не дожидаясь официального выхода сами создать следующую версию WinZip'а, написав ее на VB!

Приложения


ActiveX контролы для архивации и разархивации методом Zip. 95кб Загрузить

Приятного программирования.



Комментарии
отсутствуют

Добавление комментария

Ваше имя (на форуме):

Ваш пароль (на форуме):

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

Комментарий:



04.09.2011 Долгожданный релиз VB Decompiler. Масса улучшений декомпиляции Native Code. Значительно расширенна и обновлена справочная система на русском и английском языках.
20.12.2010 DotFix Software поздравляет наших клиентов и посетителей сайта с наступающим Новым Годом и рождеством! Желаем приятно провести праздники и успехов в новом году!
28.11.2010 Выпущена новая версия защиты DotFix NiceProtect. Основные изменения коснулись обфускатора Delphi программ. Теперь имеется полная поддержка Tab и Page контролов на формах, что обеспечивает максимальную совместимость обфускации с Delphi XE программами.
21.10.2010 Обновлен декомпилятор Visual Basic программ до версии 8.1. Декомпиляция P-Code программ становится все более идеальной, также проделана большая работа по улучшению анализа Native Code и .NET приложений.
16.09.2009 Полностью обновлен движок сайта! Теперь все ссылки имеют читаемый понятный вид, разного рода глюки на страницах убраны. И теперь сайт полноценно работает на второй версии нашего движка.
Архив новостей
Яндекс цитирования

Движок сайта: DotFix Engine v0.2
Администрация сайта:
Потребительские кредиты - кредит под залог недвижимости.;Для моторные масла цены .