Ответ 1
Используйте класс FileSystemWatcher - он делает то, что вы хотите. Он не скажет вам, какие байты в файле изменились, , но он будет сообщать вам, какие файлы имеют изменения.
Из документа:
Используйте FileSystemWatcher для просмотра изменения в указанном каталоге. Вы может следить за изменениями в файлах и подкаталоги указанного каталог. Вы можете создать компонент просматривать файлы на локальном компьютере, сетевой диск или удаленный компьютер.
Чтобы следить за изменениями во всех файлах, установите свойство Filter для пустой строки ( ") или использовать подстановочные знаки (". "). к просмотрите определенный файл, установите фильтр свойство к имени файла. Для например, наблюдать за изменениями в файл MyDoc.txt, установите фильтр свойство" MyDoc.txt ". Вы также можете следить за изменениями в определенном типе файл. Например, смотреть изменения в текстовых файлах, установите фильтр свойство" *.txt ".
Существует несколько типов изменений: можно наблюдать в каталоге или файле. Например, вы можете следить за изменениями в атрибутах, дате LastWrite и времени или размера файлов или каталоги. Это делается путем установки свойство NotifyFilter одному из значения NotifyFilters. Для большего информацию о типе изменений, которые вы можно посмотреть, см. NotifyFilters.
Вы можете наблюдать за переименованием, удалением, или создание файлов или каталогов. Например, чтобы наблюдать за переименованием текстовых файлов, установите для свойства Filter значение" *.txt" и вызовите WaitForChanged метод с переименованным, указанный для его параметр.