update system
Всем доброго дня... Поставил задачу себе написать update system для своей проги.
Немного подумавши решил сделать так: 1) ftp соединение; 2) Проверять каждый файл проги по байтам Но этот путь, как по мне, слишком неудобный... Мб есть у кого предложения как это реализовать по проще? |
вариант
|
Цитата:
|
Ну можешь фанарно по размеру файла проверять...ну это не 100% вариант.
Что бы не качать целиком файл можно проверить либо размер файла, либо скачать маленький файл( version.txt), либо считать заголовки (версию, издателя и т.п.)в самом файле предварительно его скачав, либо запоминать последнее время модификации и запрашивать на сервере где хранится екзешник время модификации файла на сервере ( фтп, хттп и т.п.) других адекватных вариантов я не вижу. |
идеальный вариант: хранить на сервере файл с перечнем файлов вашей программы и их MD5-суммой. При попытке обновления считываете этот файл и выкачиваете только те файлы, которые появились в списке либо изменили MD5 сумму.
|
А есть исходник с таким примерчиком? Как я понял нужно к каждому файлу вычислять хеш?
|
Вложений: 1
Примерчик есть, хоть и не совсем удобочитаемый ( т.к. был писан давно :) ). Вас интересует метод DownloadWorker::ExecuteUpdaterTask() - он дает представление как работал подобный сервис обновлений через HTTP в свое время.
К сожалению, не могу найти индексный файл, который хранил информацию по файлам проекта :sorry: |
Как вариант есть еще схема с распространением обновлений в форме полного дистрибутива ПО ( например, инсталятор MSI или InstallShield ). Тогда вы просто выкачиваете инсталятор и запускаете стандартную установку ПО.
Известные программы типа DownloadMaster или CCleaner используют подобную схему. |
Текущее время: 23:33. Часовой пояс GMT +3. |
ru-mangos.ru - Русское сообщество MaNGOS