0

我正在开发一个 C++ 应用程序,该应用程序检测共享文件夹(使用ReadDirectoryChangesW)上发生的更改并调用NetFileEnum该修改后的文件/文件夹。这样,我知道修改文件/文件夹的可能候选人。

根据NetFileEnum文档:

根据指定的参数,返回有关服务器上部分或全部打开文件的信息。

但是,NetFileEnum 并不一致,它并不总是告诉我当前谁在访问该资源。它似乎只有 50-60% 的时间有效。

更具体地说,假设我修改\\172.20.30.40\myshare\file.txt(本地路径:)C:\myshare\file.txt
NetFileEnum然后使用以下参数调用:

fStatus = NetFileEnum(L"\\\\172.20.30.40",
            (LPWSTR)szLocalPathStr.c_str(), // C:\\myshare\\file.txt
            pszUserName,                    // NULL
            dLevel,                         // 3
            (LPBYTE*)&pFile,
            dPrefMaxLen,
            &dEntriesRead,
            &dTotalEntries,
            NULL);

fStatus返回NERR_success(0)。但是,40-50% 的时间dEntriesRead是 0。这是 NetFileEnum 的一个已知问题吗?是否有更一致的方式来了解谁都在访问共享资源?

4

0 回答 0