出于我的目的,我希望优化从 Windows 上的 NTFS 文件系统上的给定文件夹递归枚举子文件夹的方法,我在 Microsoft 的FindFirstFile API页面上发现了这个小“宝石”:
注意 在极少数情况下或在负载较重的系统上,NTFS 文件系统上的文件属性信息在调用此函数时可能不是最新的。要确保获得当前的 NTFS 文件系统文件属性,请调用GetFileInformationByHandle函数。
所以,让我试着理解它。
我确实依靠结构中dwFileAttributes
返回的参数WIN32_FIND_DATA
来告诉文件夹中的文件。所以这个注释表明在某些情况下我可能会得到一些虚假的结果,对吧?如果是这样,为什么不在他们的更新中修复它而不是在这里发布呢?
还有他们建议的使用 GetFileInformationByHandle API 的解决方法。我到底应该怎么称呼它?它需要一个文件句柄。那么他们真的希望我们打开FindNextFile
返回的每个文件并调用GetFileInformationByHandle
它吗?你能想象用这种方法我的优化会“走多远”?
无论如何,如果有人能对此有所了解,那就太好了......