В ОС Linux есть подсистема ionotify, которая уведомляет приложение об изменениях в файловой системе.
Однако Я в основном пользователь Windows, поэтому мне было интересно, есть ли подобный способ мониторинга изменений файловой системы?
См. API FindFirstChangeNotification или его аналог в .NET FileSystemWatcher
Если вы используете .net , используйте FileSystemWatcher
. Дополнительная информация здесь: http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx
Если вы используете C , используйте FindFirstChangeNotification
, FindNextChangeNotification
, ReadDirectoryChangesW
. Дополнительная информация здесь: http://msdn.microsoft.com/en-us/library/aa365261 (VS.85) .aspx
В OSX соответствующим api является fsevents
api.
Все они тонко отличаются друг от друга, и все они имеют сомнительную надежность в крайних случаях. В общем, вы не можете полагаться на эти API для получения полного представления обо всех изменениях в 100% случаев. Большинство людей, использующих мониторинг файловой системы, сочетают его с периодическим сканированием, чтобы компенсировать потерянную или неполную информацию из push api.
Я немного поискал, кажется, припоминаю, что видел что-то подобное для Windows. Там есть FileSystemWatcher для .NET. Он в основном для NT или XP и вперед.