运行结果如图所示,为什么结果的前两行不是文件名而是"."和".."呢?

整个代码如下:
#include <afx.h>
#include <iostream.h>
void main()
{
CFileFind finder;
BOOL bWorking = finder.FindFile("*.*");
while (bWorking)
{
bWorking = finder.FindNextFile();
cout << (LPCTSTR) finder.GetFileName() << endl;
}

}





慕神8447489
浏览 101回答 3
3回答

慕妹3146593

BOOL bWorking = finder.FindFile("*.*");是查找所有的文件和文件夹,"."和".."是windows中两个特殊的文件夹,分别代表本级目录和上级目录。如果想区别文件夹和文件,可以通过finder.IsIsDirectory()来判断找到的是否文件夹。如果文件和文件夹都想查询,仅仅不想找"."和"..",则需要直接判断finder.GetFileName()的值来区别。

哈士奇WWW

.表示当前文件夹,..表示上一级文件夹,这是从DOS传承下来的。比如DOS命令cd ..是返回上一层文件夹就是这么来的。用CFileFind::IsDots函数来判断返回的是不是这两个文件夹,还可以用CFileFind::IsDirectory来判断返回的这个是不是文件夹。

慕斯709654

在windows系统中,当前文件夹中,用 . 文件夹名表示。上一层文件夹 用 .. 文件夹名表示 。所以在搜索的时候,会出现这俩个文件夹。在界面中只是隐藏了。类似 c++ 中的。 include "..\debug" 表示上一层中的debug 文件夹。include ".\debug" 表示当前文件夹的debug文件夹。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript