106

Linux OS には、ファイルシステムへの変更をアプリケーションに通知するionotify サブシステムがあります。

ただし、私は主に Windows ユーザーなので、ファイルシステムの変更を監視する同様の方法があるかどうか疑問に思っていました。

4

8 に答える 8

44

.netを使用している場合は、 FileSystemWatcher. 詳細はこちら: http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx

Cを使用している場合はFindFirstChangeNotificationFindNextChangeNotification, , を使用しますReadDirectoryChangesW。詳細はこちら: http://msdn.microsoft.com/en-us/library/aa365261(VS.85).aspx

OSXでは、関連する API はfseventsapi です。

それらはすべて互いに微妙に異なり、エッジケースでは信頼性に疑問があります。一般に、すべての変更を 100% 常に完全に表示するために、これらの API に依存することはできません。ファイル システム監視を使用しているほとんどの人は、それを定期的なスキャンと組み合わせて、プッシュ API から失われた情報や不完全な情報を補っています。

于 2010-08-18T23:32:04.733 に答える
37

FindFirstChangeNotification API、または .NET 対応のFileSystemWatcherを参照してください。

于 2010-08-18T23:13:15.577 に答える
23

これを見てみましょう: Windows 用の inotifywait ツールのポートである inotify-win

そしてこれも:inotify-tools

于 2013-01-10T10:48:10.330 に答える
11

Microsoftの JNotifyまたはFileMon

于 2010-08-18T23:13:24.320 に答える
3

FileSystemWatcher() は、主にウォッチャー バッファーのエラー処理が多かれ少なかれ不完全であるため、信頼できません。パスと詳細なエラー処理情報が不足しているため、Microsoft では、作業ディレクトリを回復または手動でポーリングする方法を提供していません。

このバグは win32 に由来するため、Windows 用の JNotify も信頼できません。JNotify は win32 を使用します。したがって、FileSystemWatcher() と同じです。

于 2013-07-15T17:34:07.450 に答える
1

少し検索しましたが、Windows で似たようなものを見たことを思い出すようです。.NET 用の FileSystemWatcherがあります。主にNTまたはXP以降向けです。

于 2010-08-18T23:12:38.557 に答える
0

Java ファイル通知ライブラリを試す

于 2013-03-05T10:54:41.277 に答える