Linux OS には、ファイルシステムへの変更をアプリケーションに通知するionotify サブシステムがあります。
ただし、私は主に Windows ユーザーなので、ファイルシステムの変更を監視する同様の方法があるかどうか疑問に思っていました。
.netを使用している場合は、 FileSystemWatcher
. 詳細はこちら: http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx
Cを使用している場合はFindFirstChangeNotification
、FindNextChangeNotification
, , を使用しますReadDirectoryChangesW
。詳細はこちら: http://msdn.microsoft.com/en-us/library/aa365261(VS.85).aspx
OSXでは、関連する API はfsevents
api です。
それらはすべて互いに微妙に異なり、エッジケースでは信頼性に疑問があります。一般に、すべての変更を 100% 常に完全に表示するために、これらの API に依存することはできません。ファイル システム監視を使用しているほとんどの人は、それを定期的なスキャンと組み合わせて、プッシュ API から失われた情報や不完全な情報を補っています。
FindFirstChangeNotification API、または .NET 対応のFileSystemWatcherを参照してください。
これを見てみましょう: Windows 用の inotifywait ツールのポートである inotify-win
そしてこれも:inotify-tools
FileSystemWatcher() は、主にウォッチャー バッファーのエラー処理が多かれ少なかれ不完全であるため、信頼できません。パスと詳細なエラー処理情報が不足しているため、Microsoft では、作業ディレクトリを回復または手動でポーリングする方法を提供していません。
このバグは win32 に由来するため、Windows 用の JNotify も信頼できません。JNotify は win32 を使用します。したがって、FileSystemWatcher() と同じです。
少し検索しましたが、Windows で似たようなものを見たことを思い出すようです。.NET 用の FileSystemWatcherがあります。主にNTまたはXP以降向けです。