Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2013, 20:06   #1
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию Как правильно сделать программу обновлений?

Уважаемые форумчане, посоветуйте как правильно организовать процесс автоматических обновлений программы? До этого была необходимость обновлять только исполнительный файл. Использовал idHTTP1.Get - для одного файла никаких проблем.

Теперь же появились другие в подкаталогах (несколько десятков). Получается надо сначала загружать список/пути этих файлов, а потом в цикле загружать через Indy (idHTTP1.Get)? Может есть какие-то более продвинутые способы?
Dux вне форума Ответить с цитированием
Старый 10.06.2013, 20:14   #2
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

я списывал с сервера xml файл хранящий версии всех файлов и потом читал его сравнивая версии с таким же "локальным" xml.
Файлы, версии которых различались между xml-инами - списывал с сервера и обновлял
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 10.06.2013, 20:35   #3
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Цитата:
Сообщение от Yurk@ Посмотреть сообщение
я списывал с сервера xml файл хранящий версии всех файлов и потом читал его сравнивая версии с таким же "локальным" xml.
Файлы, версии которых различались между xml-инами - списывал с сервера и обновлял
у меня на сервере ini файл с путями ко всем файлам программы, версия проверяется в другом месте. Просто когда дошло дело до вложенных каталогов, инди просто так не сохраняет, а ругается, что не может найти соответствующие папки. Получается, что надо создавать папки вручную?
Dux вне форума Ответить с цитированием
Старый 10.06.2013, 20:50   #4
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

скачивай файл в temp, а потом перемещай куда нужно
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 10.06.2013, 20:59   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от Dux Посмотреть сообщение
у меня на сервере ini файл с путями ко всем файлам программы, версия проверяется в другом месте. Просто когда дошло дело до вложенных каталогов, инди просто так не сохраняет, а ругается, что не может найти соответствующие папки. Получается, что надо создавать папки вручную?
да в общем то всегда надо их ручками создавать.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.06.2013, 22:18   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Цитата:
да в общем то всегда надо их ручками создавать.
ForceDirectories?

Цитата:
Теперь же появились другие в подкаталогах (несколько десятков). Получается надо сначала загружать список/пути этих файлов, а потом в цикле загружать через Indy (idHTTP1.Get)? Может есть какие-то более продвинутые способы?
XML, JSON хранилища, которые диктуют обновляемой/обновляющей программе, что делать.

Если это exe, dll то сравнение по версии файла, в привычку взять прописать версию в опциях проекта и авто инкремент номера сборки.
Другие файлы проверять по CRC32 если такой уже есть, если нету, то качать.
Человек_Борща вне форума Ответить с цитированием
Старый 10.06.2013, 22:30   #7
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Спасибо, буду разбираться!
Dux вне форума Ответить с цитированием
Старый 11.06.2013, 18:22   #8
Pearl777
Форумчанин
 
Регистрация: 04.01.2013
Сообщений: 171
По умолчанию

Можно заливать обновления в архиве, при обновлении программа скачивает архив и распаковывает его.
Pearl777 вне форума Ответить с цитированием
Старый 11.06.2013, 19:33   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
ForceDirectories?
а там все равно ручками идет, я имел в виду что все равно явно надо задавать создание папок.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.06.2013, 23:51   #10
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Цитата:
Сообщение от Pearl777 Посмотреть сообщение
Можно заливать обновления в архиве, при обновлении программа скачивает архив и распаковывает его.
Пробовал.. столкнулся с необъяснимым явлением, на некоторых компьютерах 7zip-ой архив не хотел распаковываться Не найдя причины бросил эту затею.
Dux вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно сделать? IEuro Общие вопросы C/C++ 2 13.03.2013 23:18
Как правильно сделать запрос Arkuz SQL, базы данных 2 01.09.2011 20:07
как правильно сделать Resources на C# efines Помощь студентам 2 13.05.2011 09:49
Как правильно сделать include? Delphinchik PHP 5 13.10.2010 17:40
Как правильно сделать выборку Minotavr_x86 БД в Delphi 9 04.03.2009 19:56