c++ - FindFirstFile/FindNextFile API 对缓存结果是否返回?

标签 c++ windows winapi

我不确定是否有人问过这个问题,我好像找不到。

当我进行文件夹内容枚举时,您知道通常的情况:

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/

相关文章:

C++ 多回调函数

C++:在嵌套名称说明符中命名的不完整类型

java - 从 JNI 中的 native 代码退出会杀死 Java 应用程序

python - 从其值中检索类属性/常量名称 - Python

c++ - IDataObject 中有什么?

c++ - 获取子窗口句柄\C++

c++ - boost::asio::ip::tcp::socket::cancel 和 socket::close 之间有什么不同

c++ - 如何清除 SDL_Surface 以替换为另一个 SDL_Surface?

c# - 在没有 WS-Management 服务的情况下通过 MI 访问 WMI 实例

windows - Windows命令提示符中纯文本密码的安全性