Интересен механиз работы обновлений. Предполагаю, что на клиенте хранится файл с датой следующего обновления. И в программе реализован таймер, который по наступлению времени - делает запрос на сервер и скачивает обновления.
в подобных задачах необходимо сначала определить точнее что требуется, к примеру если объем всех файлов будет 3 мб то нет смысла даже заморачиваться, если же объем под 10гб и файлы по 300 мб каждый и любой из них может измениться то md5 тоже не вариант ибо перекачивать придется каждый раз заново