为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕神8447489 2023-03-03 17:13:01
整个代码如下:#include <afx.h>#include <iostream.h>void main(){CFileFind finder;BOOL bWorking = finder.FindFile("*.*");while (bWorking){bWorking = finder.FindNextFile();cout << (LPCTSTR) finder.GetFileName() << endl;}}
查看完整描述

3 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

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

查看完整回答
反对 回复 2023-03-06
?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

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

查看完整回答
反对 回复 2023-03-06
?
慕斯709654

TA贡献1840条经验 获得超5个赞

在windows系统中,当前文件夹中,用 . 文件夹名表示。
上一层文件夹 用 .. 文件夹名表示 。所以在搜索的时候,会出现这俩个文件夹。
在界面中只是隐藏了。
类似 c++ 中的。 include "..\debug" 表示上一层中的debug 文件夹。
include ".\debug" 表示当前文件夹的debug文件夹。

查看完整回答
反对 回复 2023-03-06
  • 3 回答
  • 0 关注
  • 98 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信