Czy jest coś takiego jak inotify na Windows?

W systemie operacyjnym Linux istnieje podsystem ionotify, który powiadamia aplikację o zmianach w systemie plików.

Jednak jestem głównie użytkownikiem Windows, więc zastanawiałem się, czy istnieje podobny sposób monitorowania zmian w systemie plików?

Author: xskxzr, 2010-08-19

8 answers

W przeciwieństwie do innych systemów operacyjnych, nie jest to możliwe.]}

 30
Author: nos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-18 23:13:15

Jeśli używasz . Net , użyj FileSystemWatcher. Więcej informacji tutaj: http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx

Jeśli używasz C , użyj FindFirstChangeNotification, FindNextChangeNotification, ReadDirectoryChangesW. Więcej informacji tutaj: http://msdn.microsoft.com/en-us/library/aa365261 (VS. 85). aspx

Na OSX , odpowiednim api jest api fsevents.

Wszystkie są subtelnie różne od siebie i wszystkie mają wątpliwą wiarygodność w skrajnych przypadkach. Ogólnie, nie można polegać na tych interfejsach API, aby uzyskać pełny widok wszystkich zmian w 100% czasu. Większość osób korzystających z monitorowania systemu plików łączy je z okresowymi skanowaniami, aby zrekompensować utracone lub niekompletne informacje z interfejsu push api.
 41
Author: blucz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-29 11:02:54

W tym celu należy użyć narzędzia inotify-win, które jest portem narzędzia inotifywait dla Windows

I jeszcze to: inotify-tools

 21
Author: remo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-10 10:48:10

JNotify lub FileMon od Microsoftu.

 10
Author: Eugene,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-21 12:35:35

Trochę za późno, ale ...

System Windows ma funkcję podobną do zdarzeń OSX, dzięki której można monitorować zdarzenia bez uruchamiania aplikacji. Dziennik USN systemu Windows śledzi wszystkie zmiany plików. Jeffrey Richter (autor Advanced Windows) napisał wspaniały Artykuł z próbkami roboczymi dla MSDN Journal.

Dokumentacja MSDN dla dzienników zmian USN.

Dzienniki zmian USN są prawdopodobnie lepsze, jeśli budujesz aplikacje, takie jak narzędzia do tworzenia kopii zapasowych lub indeksy, które trzeba monitorować całe woluminy.

 9
Author: Peter Krnjevic,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-17 02:49:16

FileSystemWatcher() jest zawodna głównie ze względu na fakt, że obsługa błędów w buforze watcher jest mniej lub bardziej niekompletna. Ze względu na brak ścieżki i szczegółowych informacji o błędach obsługi, Microsoft nie daje możliwości odzyskania lub ręcznego przeszukiwania katalogu roboczego.

Jnotify Dla Windows jest również zawodny, ponieważ ten błąd ^ pochodzi z win32. JNotify używa win32. Nie różni się więc niczym od FileSystemWatcher ().

 3
Author: Phillip Brandon Holmes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-12 18:45:36

Poszperałem trochę, wydaje mi się, że widziałem coś podobnego Dla Windows. Jest FileSystemWatcher dla. NET. Its głównie dla NT lub XP i forward.

 1
Author: Pharaun,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-18 23:12:38
 0
Author: lifei,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-05 10:54:41