是否返回了FindFirstFile / FindNextFile API对缓存结果?

时间:2014-06-07 19:36:56

标签: c++ windows winapi

我不确定是否已经提出这个问题,我似乎无法找到它。

当我正在进行文件夹内容枚举时,您通常会知道:

FindFirstFile();
do
{
}while(FindNextFile());

如果我仍然在do/while循环中,文件夹的内容会发生变化,会发生什么?比如,添加,更改或删除新文件或文件夹。这是否反映在FindNextFile返回的结果中?

1 个答案:

答案 0 :(得分:4)

快速测试案例显示FindFirstFile不会将结果缓存在Windows 7上运行的本地文件系统上。但是一旦调用FindNext,结果就会被缓存(不完全,只是一点点)。但由于Windows SDK中没有记录,因此必须将其视为实现细节,可随时更改。因此,请以不依赖于此行为的方式编写代码。