MSDN - ReadDirectoryChangesW不递归

时间:2016-11-16 04:48:11

标签: c++ msdn readdirectorychangesw


我在C ++程序的一个线程中运行 ReadDirectoryChangesW 。不幸的是,我只会在根目录中的文件发生变化时收到通知,即使我已将bWatchSubtree参数设置为TRUE。

文档说:
bWatchSubtree [in]
如果此参数为TRUE,则该函数将监视以指定目录为根的目录树。如果此参数为FALSE,则该函数仅监视hDirectory参数指定的目录。

我错过了什么?

谢谢!
KK

void WatchDirectory(LPTSTR lpDir)
{
    HANDLE hDir = CreateFile(
        lpDir,
        FILE_LIST_DIRECTORY,
        FILE_SHARE_WRITE | FILE_SHARE_READ | FILE_SHARE_DELETE,
        NULL,
        OPEN_EXISTING,
        FILE_FLAG_BACKUP_SEMANTICS,
        NULL
    );

    FILE_NOTIFY_INFORMATION strFileNotifyInfo[1024];
    DWORD dwBytesReturned = 0;

    while(RUNNING)
    {
        if(ReadDirectoryChangesW(
            hDir,
            (LPVOID)&strFileNotifyInfo,
            sizeof(strFileNotifyInfo),
            TRUE,
            FILE_NOTIFY_CHANGE_LAST_WRITE,
            &dwBytesReturned,
            NULL,
            NULL) == 0)
        {
            MGlobal::displayInfo("Error Reading Directory Change");
        }
        else
        {
            // Do cool stuff
        }
    }
}

0 个答案:

没有答案