|
|||||||||||||||||||||||||||
Автор: 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'а.
Это: Unzip Тоже просто. Сначала свойству Filename присваиваем имя архива. Затем, свойству DestinationDir имя папки назначения. Вот затем будет чуточку посложнее. Если хотите разархивировать все и сразу, то примените метод UnzipAll. Если один файл - то UnzipFile и укажите имя файла. В чем сложность? А если пользователь не знает имени файла? Используйте метод ListAllFiles. При этом у контрола начнется излияние информации через событие:
Если приглядеться, можно найти здесь много разных полезных свойств: имя файла, дату его создания, размеры, сжатый и исходный и еще много чего. Сколько в архиве файлов, столько раз будет происходить это событие. Так что не мешкайте, и составляйте список файлов и их свойств. Так что используя эти два контрола, вы можете не дожидаясь официального выхода сами создать следующую версию WinZip'а, написав ее на VB! Приложения ActiveX контролы для архивации и разархивации методом Zip. 95кб Загрузить Приятного программирования.
|
|
| ||||||||||||||||||||||||