现在想用 FindFirstFile()或者 FindFirstFileEX() 来实现查找当天的日志文件该怎么用,看过MSDN了,希望有实例更清晰一些。 谢谢了!
------解决思路----------------------
仅供参考……
void FindAllFiles(const string filedir)//filedir 目录
{
HANDLE fileFound;
WIN32_FIND_DATA fileData;
string allfiledata = filedir;
allfiledata += "\\*.*";
if(allfiledata.find(" ") != -1)
{
allfiledata ="\"" + allfiledata + "\"";
}
fileFound = FindFirstFile(allfiledata.c_str(), &fileData);
if (INVALID_HANDLE_VALUE == fileFound) //没有找到文件,则返回
{
return;
}
string fileName;
while (FindNextFile(fileFound, &fileData)) //
{
fileName =(string)(fileData.cFileName);
if ((fileName.rfind(".txt") != string::npos))
{
//其中fileName是文件名,你既可以根据扩展名查找,也可以根据你文件名的特点查找
//do something
}
}
FindClose(fileFound);
fileFound = NULL;
}
------解决思路----------------------
typedef struct _WIN32_FIND_DATA {
DWORD dwFileAttributes;
FILETIME ftCreationTime; //文件创建时间
FILETIME ftLastAccessTime; //
FILETIME ftLastWriteTime; //文件最后修改时间
DWORD nFileSizeHigh;
DWORD nFileSizeLow;
DWORD dwOID;
TCHAR cFileName[MAX_PATH];
} WIN32_FIND_DATA;
遍历所有文件, 然后用这两个时间来判断即可. 本身提供的API没有时间过虑功能, 甚至没有多种后缀过虑功能.