"Синхронизация" двух файлов

интернет программирование программы windows софт

Вопрос в следующем - есть файл, скачавшийся (качался всю ночь, так как большой размер) с ошибками. есть доступ к серверу, где лежит файл, и есть очень слабый канал инета.
Как сравнить оба файла и "докачать" только отличающиеся фрагменты?
Лет 15 назад я писал (под дос) мелкую утилиту, которая реализовывала данное действие (рассчитывая контрольные суммы блоков), но сейчас под win7 не уверен что она заработает, да и вряд ли сейчас уже утилита найдется. Может существует что то аналогичное, работающее под Виндой?

Примечание:
2 2HD: я не то что "задумывался", я даже написал в вопросе - "есть доступ к серверу, где лежит файл", т.е. есть возможность запустить там эту программу...
Ответы:
похоже на torrent))
А Вы не задумывались, какое программное обеспечение на стороне сервера будет обсчитывать блоки и сообщать Вам, как клиенту, их контрольные суммы?
Это значит, что протокол передачи данных должен соответствовать Вашим требованиям. Если это обычный - SMB, HTTP или тому подобный, то особых надежд возлагать не стоит. Если же у Вас есть возможность исполнять команды на удаленном сервере, то воспользуйтесь каким-нибудь самодельным скриптом для подсчета хэшей блоков определенного размера необходимого файла.
Кстати, лично я бы написал следующий простой скрипт:
1. Например начнем с сервера. Выбор размера блока файла.
2. Чтение в цикле куска файла указанного размера с записью его в отдельный файл.
2.1. Подсчет хэша созданного только что файла. Это можно сделать с помощью утилиты certutil.exe
2.2. (до)Запись порядкового номера блока и подсчитанной контрольной суммы в текстовый файл.
3. Повторить процедуру на стороне клиента.
4. Сравнить полученные текстовые файлы.
5. Докачать на стороне клиента несовпавшие блоки с одновременной записью их в необходимое место в конечном файле (на стороне клиента).


10 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.