を使用してディレクトリを監視しようとしていReadDirectoryChangesW
ます。私が監視しているディレクトリに新しいファイルが追加されるたびに、アプリケーションはその名前を出力する必要があります。一度に1つのファイルをコピーすればアプリケーションは正常に動作しますが、一度に2つのファイルを試してみると、そのうちの1つしか認識されません。
この関数を同期的に使用しています。
コードは次のとおりです。
ディレクトリへのハンドル:
HANDLE hDir = CreateFile(
"d:\\Detect", /* pointer to the file name */
FILE_LIST_DIRECTORY, /* access (read-write) mode */
FILE_SHARE_READ|FILE_SHARE_DELETE, /* share mode */
NULL, /* security descriptor */
OPEN_EXISTING, /* how to create */
FILE_FLAG_BACKUP_SEMANTICS, /* file attributes */
NULL /* file with attributes to copy */
);
そしてReadDirectoryChangesW
:
ReadDirectoryChangesW(hDir,&Buffer,sizeof(Buffer),FALSE,
FILE_NOTIFY_CHANGE_SECURITY|
FILE_NOTIFY_CHANGE_CREATION|
FILE_NOTIFY_CHANGE_LAST_ACCESS|
FILE_NOTIFY_CHANGE_LAST_WRITE|
FILE_NOTIFY_CHANGE_SIZE|
FILE_NOTIFY_CHANGE_ATTRIBUTES|
FILE_NOTIFY_CHANGE_DIR_NAME|
FILE_NOTIFY_CHANGE_FILE_NAME,&bytesReturned,NULL,NULL);