FindFirstChangeNotification によって取得されたファイル変更通知をデバッグするにはどうすればよいですか?
-
20-08-2019 - |
質問
そこで、質問は次のとおりです。受け取りたくない通知がいくつか届きます。しかし、どのファイル/ディレクトリを取得したのかわかりません。指定された通知が発行された理由を知る方法はありますか?
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年代以来、...)
のための所属していません StackOverflow