работа с
архивами.
некоторые сайты предлагают скачать в качестве дистрибутива архив.
понятно дело, распаковываем архив, работаем уже с файлами, которые были в архиве. архив уже не нужен, его удаляем!
тут имеем 2-е проблемы:
-
первая: как определить, что дистрибутив изменился на офсайте?
с обычными файлами проще - высчитали размер существующего файла (если он есть), определили размер файла на офсайте (без его скачивания), далее простое сравнение двух размеров. размеры одинаковы - качать не надо! размер разный - качать надо!
архив же после распаковки не нужен, сохранять его в ячейке - не нужно!
я эту проблему решаю так:
- в ячейке появляется еще один файл
size.txt. в нём в одной строке записан размер архива.
в начале скачивания (когда ячейка пустая) этого файла нет. он создастся, когда будет успешно скачан архив, и в него (в файл
size.txt) будет записан размер архива.
далее после обработки (распаковки) и удаления архива у нас останется размер, с которым мы можем в дальнейшем сравнивать и принимать решение о скачивании изменившегося архива.
-
вторая проблема: что в архиве?
некоторые (большинство ?) производителей в архиве пакуют определённое имя exe- или msi- (или иное) файлов.
пример:
Comodo Internet Security 10дистрибутив получаем со стационарной ссылки:
https://cdn.download.comodo.com/cis/download/installs/1000/standalone/cispremium_only_installer.exeно полученный exe-файл - это архив! в нём есть 2 интересующих нас файла:
cis_setup_x64.msi и
cis_setup_x86.msiи эти файлы неизменны по именам!
Winstep Nexushttp://www.winstep.net/nexus.zipвнутри архива неизменный файл:
NexusSetup.exeпосложнее пример:
MusicBeeотсюда:
https://www.getmusicbee.com/downloads/ищем архив и его скачиваем. на 11.04.18 ссылка такая:
https://www.mediafire.com/file/d3fr20dmkwp35aj/MusicBeeSetup_3_1_Update3.zipвнутри архива имя такое:
MusicBeeSetup_3_1_Update3.exeкак быть тут?
- качаем архив в определённое имя:
MusicBeeSetup.zip- распаковываем его и переименовываем получившийся exe-файл в определённое имя:
MusicBeeSetup.exe