Unter Linux gibt es das Ionotify-Subsystem, das eine Anwendung über Änderungen am Dateisystem informiert.
Ich bin jedoch hauptsächlich ein Windows-Benutzer und habe mich gefragt, ob es eine ähnliche Möglichkeit gibt, Änderungen am Dateisystem zu überwachen.
Antworten:
Siehe die FindFirstChangeNotification- API oder das .NET-Gegenstück FileSystemWatcher
quelle
Wenn Sie .net verwenden , verwenden Sie
FileSystemWatcher
. Weitere Informationen finden Sie hier: http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspxWenn Sie mit C , Verwendung
FindFirstChangeNotification
,FindNextChangeNotification
,ReadDirectoryChangesW
. Weitere Informationen hier: http://msdn.microsoft.com/en-us/library/aa365261(VS.85).aspxUnter OSX ist die relevante API die
fsevents
API.Sie unterscheiden sich alle geringfügig voneinander und weisen in Randfällen eine fragwürdige Zuverlässigkeit auf. Im Allgemeinen können Sie sich nicht auf diese APIs verlassen, um 100% der Zeit eine vollständige Ansicht aller Änderungen zu erhalten. Die meisten Benutzer der Dateisystemüberwachung kombinieren sie mit regelmäßigen Scans, um verlorene oder unvollständige Informationen aus der Push-API zu kompensieren.
quelle
Schauen Sie sich das an: inotify-win, ein Port des inotifywait-Tools für Windows
und auch das: inotify-tools
quelle
JNotify oder FileMon von Microsoft.
quelle
Ein bisschen spät aber ...
Windows verfügt über eine ähnliche Funktion wie OSX-Ereignisse, mit der Sie Ereignisse überwachen können, ohne eine App auszuführen. Das Windows USN Journal verfolgt alle Dateiänderungen. Jeffrey Richter (Autor von Advanced Windows) hat einen großartigen Artikel mit Arbeitsproben für das MSDN Journal geschrieben. Update : Artikel jetzt von archive.org, da MSJ bei MS nicht mehr online ist.
MSDN-Dokumentation für USN Change Journals.
USN Change Journals sind wahrscheinlich besser, wenn Sie Anwendungen wie Sicherungstools oder Indizes erstellen, die ganze Volumes überwachen müssen.
quelle
FileSystemWatcher
| , wenn man sich darauf verlässtFindFirstChangeNotification
PhillipBrandonHolmes wurde gesprochen von ?FileSystemWatcher () ist unzuverlässig, hauptsächlich weil die Fehlerbehandlung für den Watcher-Puffer mehr oder weniger unvollständig ist. Aufgrund des Mangels an Pfad und detaillierten Informationen zur Fehlerbehandlung bietet Microsoft keine Möglichkeit, das Arbeitsverzeichnis wiederherzustellen oder manuell abzufragen.
JNotify für Windows ist ebenfalls unzuverlässig, da dieser Fehler von win32 herrührt. JNotify verwendet win32. Es ist also nicht anders als FileSystemWatcher ().
quelle
Ich habe ein bisschen gesucht, ich erinnere mich an etwas Ähnliches für Windows. Es gibt FileSystemWatcher für .NET. Es ist hauptsächlich für NT oder XP und weiter.
quelle
Versuchen Sie es mit der Java File Notification Library
quelle