C #: программно применить слияние / патч к файлу? - PullRequest
0 голосов
/ 12 октября 2010

У меня есть программа, которая требует несколько больших (~ 4 или 5 МБ) файлов. Раз в неделю, каждую неделю появляются новые версии этих файлов с небольшими изменениями. В основном всего несколько строк добавлено или удалено.

Когда программа запускается, если есть подключение к Интернету, я бы хотел, чтобы программа автоматически обновляла эти файлы. Вместо того, чтобы загружать все новые версии файлов, я хотел бы загрузить только патч, основанный на версии клиентских файлов, которая их обновляет.

Как я могу это сделать?

У меня полный контроль над сервером.

Ответы [ 2 ]

1 голос
/ 12 октября 2010

Это сложная проблема для решения, если у вас нет информации о том, что находится в файле, или у сервера есть средство, позволяющее запрашивать различия.Любая написанная вами программа, не имеющая способа определить различия без просмотра старого и нового файла, должна будет все равно ее загрузить.

0 голосов
/ 12 октября 2010

C # не имеет встроенных средств для этого, но, похоже, ваши требования не сложны. Посмотрите, как diff и ed в Unix могут быть использованы для исправления текстового файла, основанного на простой для понимания дельте. Конечно, вы должны проверить полученный файл по хешу и вернуться к полной загрузке, если он не правильный.

...