运行MSDN中CFileFind的成员函数FindFile()的示例代码出现问题,GetFileName()为什么返回的是"."?

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

}
运行结果如图所示,为什么结果的前两行不是文件名而是"."和".."呢?
展开
 我来答
pps_bd
2011-07-13 · TA获得超过148个赞
知道小有建树答主
回答量:257
采纳率:0%
帮助的人:187万
展开全部
BOOL bWorking = finder.FindFile("*.*");
是查找所有的文件和文件夹,"."和".."是windows中两个特殊的文件夹,分别代表本级目录和上级目录。
如果想区别文件夹和文件,可以通过finder.IsIsDirectory()来判断找到的是否文件夹。
如果文件和文件夹都想查询,仅仅不想找"."和"..",则需要直接判断finder.GetFileName()的值来区别。
Frank7258
2011-07-14 · TA获得超过1503个赞
知道小有建树答主
回答量:381
采纳率:0%
帮助的人:552万
展开全部
.表示当前文件夹,..表示上一级文件夹,这是从DOS传承下来的。比如DOS命令
cd ..
是返回上一层文件夹就是这么来的。
用CFileFind::IsDots函数来判断返回的是不是这两个文件夹,还可以用CFileFind::IsDirectory来判断返回的这个是不是文件夹。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天蝎神经侠侣
高粉答主

2015-09-02 · 关注我不会让你失望
知道大有可为答主
回答量:7533
采纳率:67%
帮助的人:718万
展开全部
BOOL bWorking = finder.FindFile("*.*");
是查找所有的文件和文件夹,"."和".."是windows中两个特殊的文件夹,分别代表本级目录和上级目录。
如果想区别文件夹和文件,可以通过finder.IsIsDirectory()来判断找到的是否文件夹。
如果文件和文件夹都想查询,仅仅不想找"."和"..",则需要直接判断finder.GetFileName()的值来区别。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
华师house
2015-11-13 · TA获得超过8856个赞
知道大有可为答主
回答量:1.1万
采纳率:94%
帮助的人:2096万
展开全部
在windows系统中,当前文件夹中,用 . 文件夹名表示。
上一层文件夹 用 .. 文件夹名表示 。所以在搜索的时候,会出现这俩个文件夹。
在界面中只是隐藏了。
类似 c++ 中的。 include "..\debug" 表示上一层中的debug 文件夹。
include ".\debug" 表示当前文件夹的debug文件夹。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
何处淬吴钩
2011-07-13 · TA获得超过5045个赞
知道大有可为答主
回答量:2947
采纳率:50%
帮助的人:2409万
展开全部
windows的文件目录结构就是这样的。你在cmd下用dir命令查看也有"."和".."这2个文件夹。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式