html5中文学习网

您的位置: 首页 > 网站及特效实例 > jquery特效 » 正文

C++下的目录遍历操作_编程语言综合

[ ] 已经帮助:人解决问题

   最近使用C#比较多,对于目录操作DirectoryInfo和Directory这个类感觉用起来很方便,突然又要写点C++代码,也要使用目录遍历,想了想以前的经历,记得好像MFC中的CFileFind类使用起来还算方便,但具体使用也忘了,又要花点时间去查下,还是记录在这以后再使用来查阅也方便。5TyHTML5中文学习网 - HTML5先行者学习网

  在VC++下使用CFileFind类,首先要在项目属性设置中关于“MFC的使用”设置好,再在头文件中包含 afx.h,最后就可以使用CFileFind类了。5TyHTML5中文学习网 - HTML5先行者学习网

  具体使用还是看代码,微软提供的遍历目录的代码:5TyHTML5中文学习网 - HTML5先行者学习网

  void Recurse(LPCTSTR pstr)5TyHTML5中文学习网 - HTML5先行者学习网

  {5TyHTML5中文学习网 - HTML5先行者学习网

  CFileFind finder;5TyHTML5中文学习网 - HTML5先行者学习网

  // build a string with wildcards5TyHTML5中文学习网 - HTML5先行者学习网

  CString strWildcard(pstr);5TyHTML5中文学习网 - HTML5先行者学习网

  strWildcard += _T("//*.*");5TyHTML5中文学习网 - HTML5先行者学习网

  // start working for files5TyHTML5中文学习网 - HTML5先行者学习网

  BOOL bWorking = finder.FindFile(strWildcard);5TyHTML5中文学习网 - HTML5先行者学习网

  while (bWorking)5TyHTML5中文学习网 - HTML5先行者学习网

  {5TyHTML5中文学习网 - HTML5先行者学习网

  bWorking = finder.FindNextFile();5TyHTML5中文学习网 - HTML5先行者学习网

  // skip . and .. files; otherwise, we'd5TyHTML5中文学习网 - HTML5先行者学习网

  // recur infinitely!5TyHTML5中文学习网 - HTML5先行者学习网

  if (finder.IsDots())5TyHTML5中文学习网 - HTML5先行者学习网

  continue;5TyHTML5中文学习网 - HTML5先行者学习网

  // if it's a directory, recursively search it5TyHTML5中文学习网 - HTML5先行者学习网

  if (finder.IsDirectory())5TyHTML5中文学习网 - HTML5先行者学习网

  {5TyHTML5中文学习网 - HTML5先行者学习网

  CString str = finder.GetFilePath();5TyHTML5中文学习网 - HTML5先行者学习网

  TRACE(_T("%s/n"), (LPCTSTR)str);5TyHTML5中文学习网 - HTML5先行者学习网

  Recurse(str);5TyHTML5中文学习网 - HTML5先行者学习网

  }5TyHTML5中文学习网 - HTML5先行者学习网

  }5TyHTML5中文学习网 - HTML5先行者学习网

  finder.Close();5TyHTML5中文学习网 - HTML5先行者学习网

  }5TyHTML5中文学习网 - HTML5先行者学习网

  void PrintDirs()5TyHTML5中文学习网 - HTML5先行者学习网

  {5TyHTML5中文学习网 - HTML5先行者学习网

  Recurse(_T("C:"));5TyHTML5中文学习网 - HTML5先行者学习网

  }5TyHTML5中文学习网 - HTML5先行者学习网

  代码说明:5TyHTML5中文学习网 - HTML5先行者学习网

  1. 项目选用多字节字符集,不想去纠结_T, LPCTSRT等;5TyHTML5中文学习网 - HTML5先行者学习网

  2. 关于TRACE,就是一个debug下的宏,差不多等于printf,具体参考:http://msdn.microsoft.com/en-us/library/4wyz8787(v=vs.90).aspx5TyHTML5中文学习网 - HTML5先行者学习网

  3. CFileFind: FindNextFile一定要至少提前GetFileName等成员函数前调用一次,否则要报错。所以bWorking = finder.FindNextFile();这行代码放前面5TyHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助