IsDots和IsDirectory的区别

来源:互联网 发布:秒杀网 淘宝mseav 编辑:程序博客网 时间:2024/06/07 03:55
IsDots判断是否为点--这个要说明一下,用过Dos的话,就应该知道,每个目录下都有缺省的两个目录,名称分别为 '. '和 '.. ',分别代表本层目录和上一层目录。因此,当我们在遍历目录下文件时,需要过滤掉这两个缺省目录。
所以由CFileFind对象引用IsDots的意思是:这是一个目录并且不是这个目录本身或者上层目录。
IsDirectory表明这是一个目录,isDots表明这个是.或者..而这两个东西虽然是目录,但是一个表明这个目录本身,一个代表上层目录(但是根目录下面..也是本身)
此时由CFileFind对象引用IsDirectory表明当前的CFileFind对象是否为目录。
void Recurse(LPCTSTR pstr){   CFileFind finder;   // build a string with wildcards   CString strWildcard(pstr);   strWildcard += _T("\\*.*");   // start working for files   BOOL bWorking = finder.FindFile(strWildcard);   while (bWorking)   {      bWorking = finder.FindNextFile();      // skip . and .. files; otherwise, we'd      // recur infinitely!      if (finder.IsDots())         continue;      // if it's a directory, recursively search it      if (finder.IsDirectory())      {         CString str = finder.GetFilePath();         TRACE(_T("%s\n"), (LPCTSTR)str);         Recurse(str);      }   }   finder.Close();}void PrintDirs(){   Recurse(_T("C:"));}

0 0