Com o sistema operacional Linux, existe o subsistema ionotify que notifica um aplicativo sobre alterações no sistema de arquivos.
No entanto, sou principalmente um usuário do Windows, então queria saber se existe uma maneira semelhante de monitorar as alterações do sistema de arquivos.
Respostas:
Consulte a API FindFirstChangeNotification ou a contraparte .NET FileSystemWatcher
fonte
Se você estiver usando .net , use
FileSystemWatcher
. Mais informações aqui: http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspxSe você estiver usando C , utilização
FindFirstChangeNotification
,FindNextChangeNotification
,ReadDirectoryChangesW
. Mais informações aqui: http://msdn.microsoft.com/en-us/library/aa365261(VS.85).aspxNo OSX , a api relevante é a
fsevents
api.Eles são todos sutilmente diferentes uns dos outros e todos têm confiabilidade questionável em casos extremos. Em geral, você não pode depender dessas apis para uma visão completa de todas as alterações 100% do tempo. A maioria das pessoas que usa o monitoramento do sistema de arquivos o combina com varreduras periódicas para compensar as informações perdidas ou incompletas da API push.
fonte
dê uma olhada nisso: inotify-win, uma versão da ferramenta inotifywait para Windows
e também este: inotify-tools
fonte
JNotify ou FileMon da Microsoft.
fonte
Um pouco tarde mas ...
O Windows possui um recurso semelhante aos eventos OSX, por meio do qual você pode monitorar eventos sem executar um aplicativo. O Windows USN Journal mantém registro de todas as alterações de arquivo. Jeffrey Richter (autor de Advanced Windows) escreveu um excelente artigo com exemplos de trabalho para o MSDN Journal. Atualização : artigo agora de archive.org desde que MSJ não está mais online em MS.
Documentação do MSDN para USN Change Journals.
Os diários de mudança da USN são provavelmente melhores se você estiver criando aplicativos como ferramentas de backup ou índices que precisam monitorar volumes inteiros.
fonte
FileSystemWatcher
|FindFirstChangeNotification
PhillipBrandonHolmes estava falando ?FileSystemWatcher () não é confiável principalmente devido ao fato de que o tratamento de erros para o buffer do observador é mais ou menos incompleto. Devido à falta de caminho e informações detalhadas de tratamento de erros, a Microsoft não oferece nenhuma maneira de recuperar ou pesquisar manualmente o diretório de trabalho.
O JNotify para Windows também não é confiável porque esse bug ^ deriva do win32. JNotify usa win32. Portanto, não é diferente de FileSystemWatcher ().
fonte
Fiz uma pequena pesquisa, parece que me lembro de ter visto algo semelhante para o Windows. Existe o FileSystemWatcher para .NET. É principalmente para NT ou XP e para a frente.
fonte
experimente a Biblioteca de Notificação de Arquivo Java
fonte