我不确定是否有人问过这个问题,我好像找不到。
当我进行文件夹内容枚举时,您知道通常的情况:
FindFirstFile();
do
{
}while(FindNextFile());
如果当我还在我的 do/while
循环中时,文件夹的内容发生了变化,会发生什么?比如说,添加、更改或删除了一个新文件或文件夹。这是否反射(reflect)在 FindNextFile
返回的结果中?
最佳答案
快速测试用例表明,FindFirstFile 不会将结果缓存在 Windows 7 上运行的本地文件系统上。但是一旦调用 FindNext,结果就会被缓存(不完全,只有一点点)。但由于 Windows SDK 中没有记录,因此必须将其视为实现细节,随时可能更改。因此,以不依赖于此行为的方式编写您的代码。
关于c++ - FindFirstFile/FindNextFile API 对缓存结果是否返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24100883/