将文件时间更改为当前时间
以下示例使用 SetFileTime 函数将文件的上次写入时间设置为当前系统时间。
NTFS 文件系统以 UTC 格式存储时间值,因此它们不受时区或夏令时更改的影响。 FAT 文件系统根据计算机的本地时间存储时间值。
必须使用 createFile 函数使用 FILE_WRITE_ATTRIBUTES 访问权限打开该文件。
#include <windows.h>
// SetFileToCurrentTime - sets last write time to current system time
// Return value - TRUE if successful, FALSE otherwise
// hFile - must be a valid file handle
BOOL SetFileToCurrentTime(HANDLE hFile)
{
FILETIME ft;
SYSTEMTIME st;
BOOL f;
GetSystemTime(&st); // Gets the current system time
SystemTimeToFileTime(&st, &ft); // Converts the current system time to file time format
f = SetFileTime(hFile, // Sets last-write time of the file
(LPFILETIME) NULL, // to the converted current system time
(LPFILETIME) NULL,
&ft);
return f;
}