typedef struct _FILETIME {
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME, *PFILETIME, *LPFILETIME;
typedef struct _SYSTEMTIME {
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME, *LPSYSTEMTIME;
FILETIME和SYSTEMTIME都只是记录时间的结构。
GetLocalTime能够得到本地电脑设置时区的时间,得到的类型是SYSTEMTIME的类型。
常用转换函数:
LONG WINAPI CompareFileTime(const FILETIME *lpft1, const FILETIME *lpft2);
BOOL WINAPI FileTimeToSystemTime(const FILETIME *lpft, LPSYSTEMTIME lpst);
BOOL WINAPI SystemTimeToFileTime(const SYSTEMTIME *lpst, LPFILETIME lpft);
BOOL WINAPI FileTimeToLocalFileTime(const FILETIME *lpft, LPFILETIME lpftLocal);
BOOL WINAPI LocalFileTimeToFileTime(const FILETIME *lpftLocal, LPFILETIME lpft);
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/tracyzhongcf/archive/2009/01/05/3711684.aspx
其中下面代码中的szFilePath比较重要,如果我们要查找“.h”的文件,需要将“*.*”改为“*.h”就可以了
“F://WorkSpace//134//134”文件路径
“*.*”前一个“*”代表文件名,后一个“*”代表后缀名,具体需测试查看。
int _tmain(int argc, _TCHAR* argv[])
{
DWORD dwIndex = 0;
SYSTEMTIME st = {0};
TCHAR szFilePath[] = _T("F://WorkSpace//134//134//*.*");
WIN32_FIND_DATA data = {0};
HANDLE handle = ::FindFirstFile(szFilePath, &data);
if (handle != INVALID_HANDLE_VALUE)
{
wprintf(_T("dwIndex = %d /n"), dwIndex++);
wprintf(_T("dwFileAttributes = %d /n"), data.dwFileAttributes);
FileTimeToSystemTime(&data.ftCreationTime, &st);
wprintf(_T("ftCreationTime = %04d-%02d-%02d %02d:%02d:%02d /n"), st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);
FileTimeToSystemTime(&data.ftLastAccessTime, &st);
wprintf(_T("ftLastWriteTime = %04d-%02d-%02d %02d:%02d:%02d /n"), st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);
FileTimeToSystemTime(&data.ftLastWriteTime, &st);
wprintf(_T("ftLastWriteTime = %04d-%02d-%02d %02d:%02d:%02d /n"), st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);
wprintf(_T("nFileSizeHigh = %d /n"), data.nFileSizeHigh);
wprintf(_T("nFileSizeLow = %d /n"), data.nFileSizeLow);
wprintf(_T("cFileName = %s /n"), data.cFileName);
wprintf(_T("cAlternateFileName = %s /n"), data.cAlternateFileName);
while (::FindNextFile(handle, &data))
{
wprintf(_T("/n/ndwIndex = %d /n"), dwIndex++);
wprintf(_T("dwFileAttributes = %d /n"), data.dwFileAttributes);
FileTimeToSystemTime(&data.ftCreationTime, &st);
wprintf(_T("ftCreationTime = %04d-%02d-%02d %02d:%02d:%02d /n"), st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);
FileTimeToSystemTime(&data.ftLastAccessTime, &st);
wprintf(_T("ftLastWriteTime = %04d-%02d-%02d %02d:%02d:%02d /n"), st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);
FileTimeToSystemTime(&data.ftLastWriteTime, &st);
wprintf(_T("ftLastWriteTime = %04d-%02d-%02d %02d:%02d:%02d /n"), st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);
wprintf(_T("nFileSizeHigh = %d /n"), data.nFileSizeHigh);
wprintf(_T("nFileSizeLow = %d /n"), data.nFileSizeLow);
wprintf(_T("cFileName = %s /n"), data.cFileName);
wprintf(_T("cAlternateFileName = %s /n"), data.cAlternateFileName);
}
}
FindClose(handle);
handle = NULL;
return 0;
}