Синхронизация файловой системы, как определить, изменился ли файл? - PullRequest
1 голос
/ 16 марта 2009

Мне нужно написать простой компонент резервного копирования для синхронизации папки и ее подпапок с сервером. Для инкрементного резервного копирования я хочу загрузить только измененные файлы. Как лучше всего отслеживать изменения в файловой системе? Некоторые существующие программы, такие как tortoisesvn и office groove, имеют такую ​​возможность обнаружения изменений файлов Интересно, как лучше всего реализовать подобное.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 16 марта 2009

Ваш вопрос несколько двусмысленный:

Если вы пытаетесь просмотреть все свои файлы и определить, какие из них необходимо отправить на сервер резервного копирования:

Самый простой способ - сравнить время модификации; Если файл в вашей локальной системе был изменен после того, как файл вашей системы резервного копирования, то он изменился, и резервная копия должна быть обновлена. (Можно изменить время изменения файла, используя что-то вроде touch, но для простого случая вам, вероятно, не нужно беспокоиться об этом)

Более сложным (и вычислительно дорогим) методом будет вычисление хеш-кодов файлов и их сравнение; если хеш отличается, вам нужно сделать резервную копию.

Если вы пытаетесь определить момент изменения файла:

Вы можете использовать FileSystemWatcher (в C # / Windows) или эквивалент для вашего языка / ОС.

1 голос
/ 16 марта 2009

Если в Mac OS X есть вещь под названием FSEvents . Для этого в Windows тоже должен быть какой-то сервис.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...