- ベストアンサー
フォルダ内の更新を監視する
こんにちは、honiyonです。 Windowsについて質問です。 Explorerであるフォルダを表示しておいた場合に、フォルダ内にファイルの作成・削除等の変更があると自動的に再表示されます。 これはどのような仕組みになっているのでしょうか? もしかして数秒単位でスキャンを行っているだけ? 任意のフォルダ内の変更を検知するプログラムを作りたいと考えています。 何か数秒単位でスキャンより効率の良い方法は無いかと考えているのですが... 宜しくお願いします(..
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
書き間違い。 FindNextChangeNotification(hNotification); ↓ FindNextChangeNotification(hNotification[1]);
その他の回答 (1)
かなり適当に書きますが、やりたい事はわかってもらえると思います。 ---- メイン側 ---- HANDLE hNotification[3]; void Start() { hNotification[0] = CreateEvent(NULL, TRUE, FALSE, NULL); hNotification[1] = FindFirstChangeNotification(... hNotification[2] = CreateThread(... } void Stop() { SetEvent(hNotification[0]); WaitForSingleObject(hNotification[2]); FindCloseChangeNotification(hNotification[1]); CloseHandle(hNotification[0]); CloseHandle(hNotification[2]); } ---- 通知取得スレッド ---- for(;;) { switch (WaitForMultipleObjects(2, hNotification, FALSE, INFINITE)) { case WAIT_OBJECT_0: // 終了イベント ExitThread(0); case WAIT_OBJECT_0 + 1: // 通知イベント <何らかの方法でメイン側に通知する>; FindNextChangeNotification(hNotification); } }
お礼
こんにちは、honiyonです。 ご回答ありがとうございます。 各APIを調べて早速実験&成功しました(^^) ありがとうございました(..