// 遍历文件夹,获取文件信息
void TravelFolder(CString strDir)
{
// 文件当前目录
TCHAR Buffer[MAX_PATH];
DWORD dwRet = GetCurrentDirectory(MAX_PATH, Buffer);
CString strCurrent(Buffer);
CFileFind filefind; //声明CFileFind类型变量
CString strWildpath = strDir + _T("\\*.*"); //所有文件都列出。
if(filefind.FindFile(strWildpath, 0)) //开始检索文件
{
BOOL bRet = TRUE;
while(bRet)
{
bRet = filefind.FindNextFile(); //枚举一个文件
if(filefind.IsDots()) //如果是. 或 .. 做下一个
{
continue;
}
// 文件名 begin
CString strFileName = filefind.GetFileName();
// 文件名 end
// 文件修改时间 begin
FILETIME filetime;
FILETIME localtime;
SYSTEMTIME systemtime;
filefind.GetLastWriteTime(&filetime);
FileTimeToLocalFileTime(&filetime, &localtime); //换成本地时间
FileTimeToSystemTime(&localtime, &systemtime); //换成系统时间格式
CString strTime = _T("");
strTime.Format(_T("%04d%02d%02d%02d%02d%02d"),
systemtime.wYear, systemtime.wMonth, systemtime.wDay,
systemtime.wHour, systemtime.wMinute, systemtime.wSecond);
// 文件修改时间 end
if(!filefind.IsDirectory()) //不是子目录,把文件名打印出来
{
CString strWrite = _T("");
strWrite += strFileName;
strWrite += _T("\t");
strWrite += strTime;
strWrite += + _T("\r\n");
TRACE(strWrite);
}
else //如果是子目录,递归调用该函数
{
CString strNewDir = strDir + CString(_T("\\")) + filefind.GetFileName();
TravelFolder(strNewDir);//递归调用该函数打印子目录里的文件
}
}
filefind.Close();
}
}