多くのファイル アクティビティがある場合に、ReadDirectoryChangesW API 関数でファイルが見つからないという投稿がインターネット上に多数あります。ほとんどの人は、ReadDirectoryChangesW 関数ループが呼び出される速度を非難します。これは間違った仮定です。私が見た最良の説明は、次の投稿、2008 年 4 月 14 日月曜日の午後 2:15:27 のコメントにあります。
http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/4465cafb-f4ed-434f-89d8-c85ced6ffaa8/
要約すると、ReadDirectoryChangesW 関数は、ファイルの変更が追加されたときではなく、ファイル後書きキューを離れるときにファイルの変更を報告します。また、コミットする前にあまりにも多くのものが追加されると、そのうちのいくつかに気が付かなくなります。ディレクトリに1000以上のファイルを生成するプログラムを作成するだけで、実装でこれを確認できます。受け取ったファイル イベント通知の数を数えてみると、すべてを受信できない場合があることがわかります。
問題は、毎回ボリュームをフラッシュせずに ReadDirectoryChangesW 関数を使用する信頼できる方法を見つけた人はいますか? ユーザーが管理者でない場合、これは許可されず、完了までに時間がかかる場合もあります。