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; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构