首页 > 代码库 > c++文件修改时间

c++文件修改时间

#include <windows.h>#include <stdio.h>//----------- Error Handling Function -------------------void error(LPSTR lpszFunction){    CHAR szBuf[80];    DWORD dw = GetLastError();    sprintf(szBuf, "%s failed: GetLastError returned %u\n",        lpszFunction, dw);    MessageBox(NULL, szBuf, "Error", MB_OK);    ExitProcess(dw);}//--------------------------------------------------------BOOL GetFileTime(HANDLE hFile, LPSTR lpszCreationTime, LPSTR lpszLastAccessTime, LPSTR lpszLastWriteTime){    FILETIME ftCreate, ftAccess, ftWrite;    SYSTEMTIME stUTC1, stLocal1, stUTC2, stLocal2, stUTC3, stLocal3;    // -------->获取 FileTime    if (!GetFileTime(hFile, &ftCreate, &ftAccess, &ftWrite)){        error("GetFileTime()");        return FALSE;    }    //---------> 转换: FileTime --> LocalTime    FileTimeToSystemTime(&ftCreate, &stUTC1);    FileTimeToSystemTime(&ftAccess, &stUTC2);    FileTimeToSystemTime(&ftWrite, &stUTC3);    SystemTimeToTzSpecificLocalTime(NULL, &stUTC1, &stLocal1);    SystemTimeToTzSpecificLocalTime(NULL, &stUTC2, &stLocal2);    SystemTimeToTzSpecificLocalTime(NULL, &stUTC3, &stLocal3);    // ---------> Show the  date and time.    wsprintf(lpszCreationTime, "创建时间:\t%02d/%02d/%d  %02d:%02d",        stLocal1.wDay, stLocal1.wMonth, stLocal1.wYear,        stLocal1.wHour, stLocal1.wMinute);    wsprintf(lpszLastAccessTime, "最后访问时间:\t%02d/%02d/%d  %02d:%02d",        stLocal2.wDay, stLocal2.wMonth, stLocal2.wYear,        stLocal2.wHour, stLocal2.wMinute);    wsprintf(lpszLastWriteTime, "最后修改时间:\t%02d/%02d/%d  %02d:%02d",        stLocal3.wDay, stLocal3.wMonth, stLocal3.wYear,        stLocal3.wHour, stLocal3.wMinute);    return TRUE;}//----------------------------------------------------------------int main(int argn, char* argv[]){    if (argn < 2)    {        return -1;    }    HANDLE hFile;    TCHAR szCreationTime[30], szLastAccessTime[30], szLastWriteTime[30];    hFile = CreateFile(argv[1], 0, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);    GetFileTime(hFile, szCreationTime, szLastAccessTime, szLastWriteTime);    if (hFile == INVALID_HANDLE_VALUE){        error("GetLastWriteTime()");        return 0;    }    printf("%s\n%s\n%s\n", szCreationTime, szLastAccessTime, szLastWriteTime);    CloseHandle(hFile);    system("pause");    return 0;}

 

c++文件修改时间