我想了解有关FindFirstFile和以下第一个FindNextFile的信息。
是的,FindFirstFile总是找到“。” (当前文件夹)和下面的FindNextFile总是“ ..”(父文件夹)吗?掩码当然是“ *”。我想稍微加快文件列表的速度,我可以写点什么,例如:

h := FindFirstFile('path\*' ...)     // it finds '.', not process
if h = INVALID_HANDLE_VALUE then ... // some error handling, of course
FindNextFile(...)                    // skipping '..', I suppose, if '.' has found,
                                     // '..' will be too, no handle validity check
while FindNextFile(...) do
  // file/folder processing begins here


因此,我不需要检查“。”和每个周期中的“ ..”文件名。对不起,我认为语法是可以理解的,如果我犯了错误,对我的英语也可以理解。

最佳答案

根本不能保证前两个条目将是'. ''..'。因此,您建议的代码无法使用。

我想,您可以对是否已看到这两个条目的布尔值进行跟踪,如果是,则跳过检查。

但是,检查这些值不是您的瓶颈。枚举目录涉及到磁盘和系统调用的行程。那是瓶颈。对这些项目进行优化检查的任何尝试都将使您的代码变得混乱,并且不会产生明显的性能优势。

10-04 20:01