18

Windows プログラミングは初めてで、ファイル システムへのすべての変更の通知を受けようとしています (SysInternals の FileMon が表示する情報に似ていますが、API を介して)。各 (非ネットワーク、非サブステッド) ドライブの FindFirstChangeNotification は私の最善の策ですか、それとも他のより適切な C/C++ API がありますか?

4

4 に答える 4

22

FindFirstChangeNotificationは問題ありませんが、もう少し究極のパワーを使用する必要がありますReadDirectoryChangesW.(実際、ドキュメントでも推奨されています!)

関数ポインターは必要ありません。生のバッファーを手動でデコードする必要があり、Unicode ファイル名を使用しますが、一般的にはより優れており、より柔軟です。

一方、FileMon の機能を実行したい場合は、おそらく FileMon の機能を実行し、IFS を使用してファイル システム フィルターを作成してインストールする必要があります。

于 2008-08-22T17:11:16.007 に答える
0

他にも方法はありますが、ほとんどの場合、ユーザーの努力が必要です (または、アプリのパフォーマンスを低下させたり、スレッドをブロックして使用する必要があるなど)。関数ポインタなどの扱いに慣れていない場合、FindFirstChangeNotification は少し複雑ですが、OS に大部分の作業を任せられるという利点があります。

于 2008-08-19T18:31:47.917 に答える
0

実際、FileSystemWatcher は共有ネットワーク ドライブで完全に動作します。私は現在、特にファイルシステムの変更を監視するアプリケーションで使用しています。(www.tabbles.net)。

于 2009-08-20T17:14:13.167 に答える
-1

FileSystemWatcher クラスを使用できます。非常に効率的ですが、ネットワーク共有ドライブでは機能しません。

于 2009-06-11T13:55:57.300 に答える