整个代码如下: #include <afx.h> #include <iostream.h> void main() { CFileFind finder; BOOL bWorking = finder.FindFile("*.*"); while (bWorking) { bWorking = finder.FindNextFile(); cout << (LPCTSTR) finder.GetFileName() << endl; } } 运行结果如图所示,为什么结果的前两行不是文件名而是"."和".."呢?
BOOL bWorking = finder.FindFile("*.*");
是查找所有的文件和文件夹,"."和".."是windows中两个特殊的文件夹,分别代表本级目录和上级目录。
如果想区别文件夹和文件,可以通过finder.IsIsDirectory()来判断找到的是否文件夹。
如果文件和文件夹都想查询,仅仅不想找"."和"..",则需要直接判断finder.GetFileName()的值来区别。