#include <windows.h> #include <tchar.h> #include <strsafe.h> // GetLastWriteTime - Retrieves the last-write time and converts// the time to a string Return value - TRUE if successful, FALSE otherwise// hFile - Valid file handle// lpszString - Pointer to buffer to receive string BOOL GetLastWriteTime(HANDLE hFile, LPTSTR lpszString, DWORD dwSize) { FILETIME ftCreate, ftAccess, ftWrite; SYSTEMTIME stUTC, stLocal; DWORD dwRet; // Retrieve the file times for the file.if (!GetFileTime(hFile, &ftCreate, &ftAccess, &ftWrite)) return FALSE; // Convert the last-write time to local time. FileTimeToSystemTime(&ftWrite, &stUTC); SystemTimeToTzSpecificLocalTime(NULL, &stUTC, &stLocal); // Build a string showing the date and time. dwRet = StringCchPrintf(lpszString, dwSize, TEXT("%02d/%02d/%d %02d:%02d"), stLocal.wMonth, stLocal.wDay, stLocal.wYear, stLocal.wHour, stLocal.wMinute); if( S_OK == dwRet ) return TRUE; elsereturn FALSE; } int _tmain(int argc, TCHAR *argv[]) { HANDLE hFile; TCHAR szBuf[MAX_PATH]; if( argc != 2 ) { printf("This sample takes a file name as a parameter\n"); return 0; } hFile = CreateFile(argv[1], GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); if(hFile == INVALID_HANDLE_VALUE) { printf("CreateFile failed with %d\n", GetLastError()); return 0; } if(GetLastWriteTime( hFile, szBuf, MAX_PATH )) _tprintf(TEXT("Last write time is: %s\n"), szBuf); CloseHandle(hFile); } 另外例子 觉得这个好 FILETIME ftCreate, ftModify, ftAccess; CString strCreateTime, strModifyTime, strAccessTime; CString strFilePath = _T(""); GetDlgItem(IDC_EDT_FILEPATH)->GetWindowText(strFilePath); // 文件路径 HANDLE hFile = CreateFile(strFilePath, GENERIC_READ, // open for reading FILE_SHARE_READ, // share for reading NULL, // default security OPEN_EXISTING, // existing file only FILE_FLAG_BACKUP_SEMANTICS , // normal file NULL); SYSTEMTIME stLocal; if (!GetFileTime(hFile, &ftCreate, &ftAccess, &ftModify)) { return ; } ZeroMemory(&stLocal, sizeof(SYSTEMTIME)); FileTimeToSystemTime(&ftCreate, &stLocal); strCreateTime.Format("%04d-%02d-%02d %02d:%02d:%02d", stLocal.wYear, stLocal.wMonth, stLocal.wDay, stLocal.wHour, stLocal.wMinute, stLocal.wSecond); // 文件创建时间 ZeroMemory(&stLocal, sizeof(SYSTEMTIME)); FileTimeToSystemTime(&ftModify, &stLocal); strModifyTime.Format("%04d-%02d-%02d %02d:%02d:%02d", stLocal.wYear, stLocal.wMonth, stLocal.wDay, stLocal.wHour, stLocal.wMinute, stLocal.wSecond); // 文件修改时间 ZeroMemory(&stLocal, sizeof(SYSTEMTIME)); FileTimeToSystemTime(&ftAccess, &stLocal); strAccessTime.Format("%04d-%02d-%02d %02d:%02d:%02d", stLocal.wYear, stLocal.wMonth, stLocal.wDay, stLocal.wHour, stLocal.wMinute, stLocal.wSecond); // 文件访问时间 SetDlgItemText(IDC_STC_CREATETIME, strCreateTime); SetDlgItemText(IDC_STC_MODIFYTIME, strModifyTime); SetDlgItemText(IDC_STC_ACCESSTIME, strAccessTime);