Кроссплатформенный наблюдатель файловой системы C++
Я ищу кроссплатформенный наблюдатель файловой системы, похожий на класс FileSystemWatcher в.NET. Так как это для демона / сервиса, я не заинтересован в Qt QFileSystemWatcher. Я действительно хотел бы избежать этого, так как не хочу зависеть от Qt, так как моя программа будет демоном.
Я также видел предложение о включении такого класса в Boost, но, насколько я знаю, такой класс еще не был включен.
Есть ли кроссплатформенный наблюдатель файловой системы C++?
4 ответа
Я не использовал это (я пришел к этому вопросу в поисках альтернатив), но http://code.google.com/p/simplefilewatcher кажется, хороший вариант. В настоящее время он не поддерживается, но соответствующие API, вероятно, довольно стабильны. Я постараюсь не забыть обновить этот ответ, если я использую эту библиотеку.
В качестве альтернативы есть также "Entropia File System Watcher"
https://bitbucket.org/SpartanJ/efsw который является ответвлением простого наблюдателя за файлами.
В настоящее время efsw поддерживает следующие платформы:
Linux через inotify
Windows через порты завершения ввода / вывода
Mac OS X через FSEvents или kqueue
FreeBSD / BSD через kqueue
Независимый от ОС универсальный наблюдатель (опрос диска на предмет моментальных снимков каталогов и их периодическое сравнение)
Если по какой-либо причине какой-либо из бэкэндов не запустится, он вернется к независимой от ОС реализации.
Для полноты картины также стоит упомянуть Poco DirectoryWatcher.