Есть ли что -нибудь похожее на INOTIFE в Windows?

StackOverflow https://stackoverflow.com/questions/3517460

  •  29-09-2019
  •  | 
  •  

Вопрос

С помощью ОС 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.

Jnotify или Filemon от Microsoft.

Немного поздно, но ...

У 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 и вперед.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top