ディレクトリの中の変更の検索 以下に説明を示します。 ただし、存在しないディレクトリには無効です。 ディスクの入れ替えなどは_accessなどを使用するのがいいでしょう またネットワークドライブなどでは2箇所で検索すると、後で検索 されたほうが状態変化なし、となることがあるので気をつけましょう。 HANDLE FileMustSearch; CHAR DirectoryName[_MAX_PATH]; //FindFirstChangeNotificationで変更した場合の条件を設定します FileMustSearch=FindFirstChangeNotification(DirectoryName,FALSE, (FILE_NOTIFY_CHANGE_SIZE | FILE_NOTIFY_CHANGE_ATTRIBUTES | FILE_NOTIFY_CHANGE_DIR_NAME|FILE_NOTIFY_CHANGE_FILE_NAME)); //次に検索したい時にWaitForSingleObjectを使い前回設定した //条件が変更されているかどうかを調べます //何も変更がない場合にはWaitForSingleObjectの返り値はWAIT_TIMEOUTに //なります。変更がなかった場合にはFindNextChangeNotificationを呼び出して //次に変更される時間まで待ちます。 //変更があった場合には if(WAIT_TIMEOUT==WaitForSingleObject(FileMustSearch,10)) { FindNextChangeNotification(FileMustSearch); return FALSE; } //変更があった場合にはFindCloseChnagenotificationでいったんハンドルを閉じ //再びFindFirstChangeNotificationを呼び出す必要があります。 FindCloseChangeNotification(FileMustSearch); FileMustSearch=FindFirstChangeNotification(DirectoryName,FALSE, ( FILE_NOTIFY_CHANGE_SIZE | FILE_NOTIFY_CHANGE_ATTRIBUTES | FILE_NOTIFY_CHANGE_DIR_NAME|FILE_NOTIFY_CHANGE_FILE_NAME)); return TRUE;