Есть ли что -нибудь похожее на INOTIFE в Windows?
Вопрос
С помощью ОС Linux существует подсистема ионотификации, которая уведомляет применение изменений в файловой системе.
Тем не менее, я в основном пользователь Windows, поэтому мне было интересно, есть ли аналогичный способ мониторинга изменений файловой системы?
Решение
Увидеть Findfirstchangenotification API или аналог .NET FileSystemWatcher
Другие советы
Если вы используете .сеть, использовать FileSystemWatcher
. Анкет Подробнее здесь: http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx
Если вы используете В, использовать FindFirstChangeNotification
, FindNextChangeNotification
, ReadDirectoryChangesW
. Анкет Подробнее здесь: http://msdn.microsoft.com/en-us/library/aa365261(vs.85).aspx
На OSX, соответствующий API - это fsevents
API
Все они тонко отличаются друг от друга, и все они имеют сомнительную надежность в случаях краев. В целом, вы не можете зависеть от этих API для полного представления обо всех изменениях 100% времени. Большинство людей, использующих мониторинг файловой системы, объединяют его с периодическим сканированием, чтобы компенсировать потерянную или неполную информацию из PUSH API.
Взгляни на это: INOTIFIE-WIN, порт инструмента INOTIFYWAIT для Windows
а также это: INOTIFY TOOLES
Немного поздно, но ...
У Windows есть объект, аналогичный событиям OSX, благодаря которым вы можете отслеживать события без запуска приложения. Журнал Windows USN отслеживает все изменения файлов. Джеффри Рихтер (автор Advanced Windows) написал Потрясающая статья с рабочими образцами для MSDN Journal. Обновлять: статья Теперь от Archive.org, так как MSJ больше не в сети в MS.
Документация MSDN для журналов USN Change.
Журналы USN Change, вероятно, лучше, если вы создаете приложения, такие как инструменты резервного копирования или индексы, которые необходимо для отслеживания целых объемов.
FileSystemWatcher () ненадежна в основном из -за того, что обработка ошибок для буфера наблюдателя более или менее неполна. Из -за отсутствия пути и подробной информации об обработке ошибок Microsoft не дает вам никакого способа восстановить или вручную опросить рабочий каталог.
Jnotify для Windows также ненадежна, потому что эта ошибка происходит от Win32. Jnotify использует Win32. Таким образом, это ничем не отличается от файловой системы ().
Я немного искал, я помню, как видел что -то подобное для Windows. ЕстьFileSystemWatcher для .net. Это в основном для NT или XP и вперед.
пытаться Библиотека уведомлений о файлах Java