Что нового

[Файловая система] Как отследить изменения файлов

BIOS

Жизнь - игра. График - супер, но сюжет - хреновый.
Сообщения
173
Репутация
69
Пишу гибрид BackUp клиента и клиента для облачного сервиса.
У Dropbox-а есть функционал: когда что-либо правишь в папке подвластной Dropbox-у, то этот файл сразу синхронизируется с облачным хранилищем.
Встает вопрос - как такое же реализовать, точнее как отследить обращения к файлам в определенной папке?
Может кто знает принцип...

P.S. Кждые несколько секунд пересчитывать хэш-суммы всех файлов в директории - не вариант.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
тут только два варианта
1. действительно проверять хеш каждого файла с интервалом в секунд 5.
2. писать драйвер файловой системы, которая будет оповещать программу о любых изменениях происходящих на диске.

второе, как ты понимаешь, достаточно сложно и специфично. я более чем уверен, что ДБ делает по п.1
 
Автор
B

BIOS

Жизнь - игра. График - супер, но сюжет - хреновый.
Сообщения
173
Репутация
69
Судя по скорости работы Dropbox-а, я больше поверю что там как раз используется драйвер
А вот в CloudSigma (вроде не перепутал) вполне возможно и хе шифрование всех файлов

Хотя уже возникли две идеи.
1) Перебирать все файлы и смотреть дату изменения, а вторым этапом уже хешировать, чтобы зря не гонять трафик
2) Поставить hook на системный вызов закрытия файла. Где то у меня валялась статей общего назначения об установке hook-ов на системные вызовы...
 

AZJIO

Меценат
Меценат
Сообщения
2,892
Репутация
1,196
http://autoit-script.ru/index.php/topic,6426.msg44861.html#msg44861
http://autoit-script.ru/index.php/topic,4883.msg35734.html#msg35734
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Kaster [?]
я более чем уверен, что ДБ делает по п.1
Я так не думаю. Быстрота реагирования на изменение и добавление файла - черезчур высокая. У меня в дропбоксе over 30k файлов и добавление текстового файла в дебри папок происходит мнгновенно на всех компьютерах. Все таки он следит за изменениями в своей папке.
 
Верх