Я хочу рассчитать дельта на файл, то есть хочу получить только измененные биты файла, как это делают приложения, такие как DropBox или Google Диск.Как вычислить дельта на файл, то есть изменена часть файла
Как только файл в наблюдаемой папке изменяется, я хочу знать смещение затронутых байтов и измененных байтов для отправки на файловый сервер.
Я хочу реализовать это решение на платформе Windows, поэтому я в порядке с C, C++ или C# .Net решением.
Update: Пример: Предположим, у меня есть файл X, имеющий размер 10 МБ (Binary или текст) в моей локальной просматриваемой папки. Предположим, что я изменил 1 МБ. Теперь я хочу получить только измененные байты (1 МБ) и диапазон, в котором я могу применить 1 МБ на файловом сервере. Это также называется функцией Delta Sync.
Вы говорите о любых типах файлов (текст, изображения, исполняемые файлы и т. Д.)? –
Обычно это делается путем выбора размера блока (например, 2K) и выполнения какого-либо хэша на каждом блоке. Если хеши для блока не совпадают, вы повторно передаете этот блок. –
Путь к широкому - непонятно, с каковой проблемой вы сталкиваетесь с кодом прямо сейчас (базовый diff с поиском первой точки, где 2 файла не совпадают, несколько проще ...). Вы можете подумать о том, чтобы прочитать http://en.wikipedia.org/wiki/Delta_encoding и связанные статьи, чтобы почувствовать подходы/проблемы. –