FindFirstChangeNotification によって取得されたファイル変更通知をデバッグするにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/503401

質問

そこで、質問は次のとおりです。受け取りたくない通知がいくつか届きます。しかし、どのファイル/ディレクトリを取得したのかわかりません。指定された通知が発行された理由を知る方法はありますか?

ReadDirectoryChangesW について考えている場合は、意味のあるコード サンプルを含めてください。

役に立ちましたか?

解決

Windows にどの特定のファイルまたはサブディレクトリが変更されたかを知らせてもらいたい場合は、以下を使用する必要があります。 ディレクトリ変更の読み取りW. 。完了ルーチンを使用する場合、非同期モードは非常に簡単です。

一方、もう少し複雑なメソッドを使用すると、パフォーマンスが向上する可能性があります。 I/O完了ポート アプローチ。Wes Jones の優れた作品をダウンロードすることをお勧めします。 CDirectoryChangeWatcher 開始点としてのソースコード。彼のコードは、特に解析時に回避するのに役立つ問題がいくつかあります。 FILE_NOTIFY_INFORMATION 記録。

他のヒント

〜擬似コード

HANDLE handles[MAX_HANDLES];
std::string dir_array[MAX_HANDLES];

for i from 0 to MAX_HANDLES:
   h[i] = FindFirstChangeNotification(dir_array[i]...);

nCount = MAX_HANDLES;
ret = WaitForMultipleObjects(handles, nCount ...);

// check if ret returns something between WAIT_OBJECT_0 and WAIT_OBJECT_0+nCount-1
if "so":
  ret -= WAIT_OBJECT_0;
  cout << "Directory " << dir_array[ret] << " changed" << endl;

を参照してください: http://msdn.microsoft。 COM / EN-US /ライブラリ/ ms687025(VS.85).aspxの

//comp.os.ms-windows.programmer.win32:

プロのWin32 APIニュースグループのニュースで見ます 周知のMSサンプル(Cコード)(90年代以来、...)

のための
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top