FindFile FindNextFile 如何遍历一个文件夹并获取里面文件的信息

来源:互联网 发布:php 执行lua脚本 编辑:程序博客网 时间:2024/04/30 01:25

地址: FindFile FindNextFile 如何遍历一个文件夹并获取里面文

如何遍历一个文件夹并获取里面文件的信息?蚊子132 今天给大家一段实现的代码,非常简单的。

  1. // 遍历文件夹,获取文件信息
  2. void TravelFolder(CString strDir)
  3. {
  4.     // 文件当前目录
  5.     TCHAR Buffer[MAX_PATH];
  6.     DWORD dwRet = GetCurrentDirectory(MAX_PATH, Buffer);
  7.     CString strCurrent(Buffer);

  8.     CFileFind filefind;                                         //声明CFileFind类型变量

  9.     CString strWildpath = strDir + _T("\\*.*");     //所有文件都列出。

  10.     if(filefind.FindFile(strWildpath, 0))                    //开始检索文件
  11.     {
  12.         BOOL bRet = TRUE;

  13.         while(bRet)
  14.         {
  15.             bRet = filefind.FindNextFile();                 //枚举一个文件            

  16.             if(filefind.IsDots())                                 //如果是. 或 .. 做下一个
  17.             {
  18.                 continue;
  19.             }

  20.             // 文件名 begin
  21.             CString strFileName = filefind.GetFileName();
  22.             // 文件名 end

  23.             // 文件修改时间 begin
  24.             FILETIME   filetime;
  25.             FILETIME   localtime;
  26.             SYSTEMTIME systemtime;
  27.             filefind.GetLastWriteTime(&filetime);

  28.             FileTimeToLocalFileTime(&filetime, &localtime); //换成本地时间

  29.             FileTimeToSystemTime(&localtime, &systemtime);  //换成系统时间格式

  30.             CString strTime = _T("");
  31.             strTime.Format(_T("%04d%02d%02d%02d%02d%02d"),
  32.                 systemtime.wYear, systemtime.wMonth, systemtime.wDay,
  33.                 systemtime.wHour, systemtime.wMinute, systemtime.wSecond);
  34.             // 文件修改时间 end            

  35.             if(!filefind.IsDirectory())                          //不是子目录,把文件名打印出来
  36.             {
  37.                 CString strWrite = _T("");
  38.                 strWrite += strFileName;
  39.                 strWrite += _T("\t");
  40.                 strWrite += strTime;
  41.                 strWrite +=  + _T("\r\n");
  42.                 TRACE(strWrite);
  43.             }
  44.             else                                                   //如果是子目录,递归调用该函数
  45.             {
  46.                 CString strNewDir = strDir + CString(_T("\\")) + filefind.GetFileName();

  47.                 TravelFolder(strNewDir);//递归调用该函数打印子目录里的文件
  48.             }
  49.         }

  50.         filefind.Close();
  51.     }
  52. }
复制代码

1 0
原创粉丝点击