Мы много раз передаем файлы по всему миру на оборудование, над которым мы работаем удаленно.
Наше решение состояло в том, чтобы создать специальный инструмент для этого (на самом деле он выполняет много других действий), который выполняет своего рода «дельта-копирование» - то есть только выталкивает части файлов, которые изменились.
Это освобождает вас от беспокойства о временных метках файлов и т. Д. - файл, который вы в конечном итоге получаете на дальнем конце, является байтовым байтом, идентичным ближайшему, но если единственное, что фактически изменилось, это внутренняя временная метка тогда очень мало данных потребуется для перемещения по проводам.
Мы использовали алгоритм, основанный примерно на том, как работает rsync (http://samba.anu.edu.au/rsync/tech_report/), хотя мы написали его с нуля в C #.
Однако в вашей ситуации может оказаться, что усилия по настройке rsync и пакетного файла для его вызова с правильной средой / параметрами будут проще. Здесь есть версия rsync для Win32: http://www.itefix.no/i2/node/10650, которую я успешно использую.