ОС-независимый API для мониторинга файловой системы? - PullRequest
8 голосов
/ 01 октября 2008

Я хотел бы поэкспериментировать с идеями о распределенной синхронизации / репликации файлов. Чтобы сделать его эффективным, когда пользователь работает, я хотел бы реализовать какой-нибудь демон для отслеживания изменений в каком-либо каталоге (например, / home / user / dirToBeMonitored или c: \ docs and setts \ user \ dirToBeMonitored). Таким образом, я мог знать, какое имя файла было добавлено / изменено / удалено каждый раз (или в течение разумного интервала).

Возможно ли это с любым языком высокого уровня? Знаете ли вы какой-нибудь API (и на каком языке?) Для этого?

Спасибо.

Ответы [ 4 ]

10 голосов
/ 01 октября 2008

API совершенно разные для Windows , Linux , Mac OS X и любых других Unix , которые вы можете назвать, это кажется. Я не знаю ни одной кроссплатформенной библиотеки, которая бы справлялась с этим согласованно.

9 голосов
/ 18 июля 2009

Добродушный ответ, хотя и требующий большой зависимости от библиотеки (стоит ИМО)!

QT предоставляет класс QFileSystemwatcher , который использует собственный механизм базовой платформы.

Еще лучше, вы можете использовать привязки языка QT для Python или Ruby. Здесь - это простое приложение PyQT4, которое использует QFileSystemWatcher .

Примечания

0 голосов
/ 01 октября 2008

А на OS X это называется fsevents . Это API уровня ОС, поэтому к нему проще всего обращаться из C или C ++. должен быть доступен практически на любом языке, хотя привязки для вашего предпочтительного языка еще не написаны.

0 голосов
/ 01 октября 2008

В Linux это называется inotify .

...