假设E盘下有一个文件test.txt,执行下述程序:
#include <windows.h>
#include <fstream>
#include <iostream>
using namespace std;
int main(int argc, char** argv)
{
SYSTEMTIME createTime; //创建时间
GetSystemTime(&createTime);
createTime.wDay = 1
createTime.wMonth = 03;
createTime.wYear = 1933;
createTime.wHour = 10;
createTime.wMinute = 10;
createTime.wSecond = 17;
SYSTEMTIME lastWriteTime; //修改时间
GetSystemTime(&lastWriteTime);
lastWriteTime.wDay = 9;
lastWriteTime.wMonth = 2;
lastWriteTime.wYear = 1923;
lastWriteTime.wHour = 9;
lastWriteTime.wMinute = 37;
lastWriteTime.wSecond = 23;
SYSTEMTIME lastAccessTime; //访问时间
GetSystemTime(&lastAccessTime);
lastAccessTime.wDay = 9;
lastAccessTime.wMonth = 2;
lastAccessTime.wYear = 1923;
lastAccessTime.wHour = 15;
lastAccessTime.wMinute = 31;
lastAccessTime.wSecond = 8;
FILETIME lastWriteFiletime;
SystemTimeToFileTime(&lastWriteTime, &lastWriteFiletime);
FILETIME createFiletime;
SystemTimeToFileTime(&createTime, &createFiletime);
FILETIME lastAccessFileTime;
SystemTimeToFileTime(&lastAccessTime, &lastAccessFileTime);
HANDLE filename = CreateFile(L"E:\\test.txt", FILE_WRITE_ATTRIBUTES, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
// 设置文件的时间属性为之前设定的创建时间、最后访问时间和最后修改时间
SetFileTime(filename, &createFiletime, &lastAccessFileTime, &lastWriteFiletime);
CloseHandle(filename);
return 0;
}