cfilefind类中的isdots函数是判断什么的 请讲的通俗一点 不要网上那种概念性的解释
2个回答
展开全部
是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
展开全部
更精确
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询