Win32API ファイルタイムを取得する GetFileTime, FileTimeToLocalFileTime, FileTimeToSystemTime
Win32APIでファイルタイムを取得する
使用するAPI
ファイルタイムを取得するサンプルプログラムの手順
1.ファイルタイムを取得
2.これをローカルファイルタイムに変換
3.さらにSYSTEMTIME構造体に変換しコンソールに表示する
#include <windows.h> void PrintFileTimeByLocalTime(const FILETIME *lpFileTime) { FILETIME localFileTime; SYSTEMTIME systemTime; static char *dayOfWeek[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; FileTimeToLocalFileTime(lpFileTime, &localFileTime); FileTimeToSystemTime(&localFileTime, &systemTime); printf("%04d/%02d/%02d %02d:%02d:%02d.%03d (%s)\n", systemTime.wYear, systemTime.wMonth, systemTime.wDay, systemTime.wHour, systemTime.wMinute, systemTime.wSecond, systemTime.wMilliseconds, dayOfWeek[systemTime.wDayOfWeek]); } int main() { HANDLE hFile; char *lpFileName = "test.txt"; FILETIME creationTime; FILETIME lastAccessTime; FILETIME lastWriteTime; hFile = CreateFile(lpFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile == INVALID_HANDLE_VALUE) { printf("CreateFile failed\n"); return 1; } if (!GetFileTime(hFile, &creationTime, &lastAccessTime, &lastWriteTime)) { printf("GetFileTime failed\n"); CloseHandle(hFile); return 1; } /作成時刻 PrintFileTimeByLocalTime(&creationTime); //最終アクセス時刻 PrintFileTimeByLocalTime(&lastAccessTime); //最終書き込み時刻 PrintFileTimeByLocalTime(&lastWriteTime); CloseHandle(hFile); return 0; }