cfilefind类中的isdots函数是判断什么的 请讲的通俗一点 不要网上那种概念性的解释

 我来答
splashchaos
推荐于2017-11-26 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3342
采纳率:0%
帮助的人:3674万
展开全部

是Visual C++的MFC类CFileFind吧?成员函数isdots()检测的是『.』『..』这两个目录。 这是一个操作系统相关的概念。 . - 代表当前的目录;而.. - 代表上一层的目录。举例来说:如果程序的当前目录是: c:\windows\temp, 那么. = c:\windows\temp; 而.. = c:\windows 

在操作系统中(Windows, xNix等),每一个目录下都有这么两个目录,这就象链表一样,把自身和上一级目录串了起来。

当你使用CFileFind的时候,有时需要对结果进行过滤,否则任何文件或目录都会被CFileFind中的成员函数FindFile()和FindNextFile()所发现并返回,这也许会干扰你的判断。 下面的代码片段说明这个用法:

void Recurse(LPCTSTR pstr) // 设置一个目录,比如:"c:\\windows"
   CFileFind finder;

   CString sPath(pstr);
   sPath += _T("\\*.*");

   BOOL bWorking = finder.FindFile(sPath);

   while (bWorking)
   {
      bWorking = finder.FindNextFile();

      // 跳过 . 和 .. ; 否则会陷入无限循环中!!!
      if (finder.IsDots())
         continue;

      // 如果是目录,进入搜索 (递归ing)!!!
      if (finder.IsDirectory())
      {
         CString str = finder.GetFilePath();
         TRACE(_T("%s\n"), (LPCTSTR)str);
         Recurse(str);
      }
      else
      {
          //不是目录,作点啥呢? <=== 按需添加你的代码如下!!
          ;
      }
   }

   finder.Close();
}
匿名用户
2014-11-07
展开全部
更精确
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式