ファイル時刻を現在の時刻に変更する
次の例では、 SetFileTime 関数を使用して、ファイルの最終書き込み時刻を現在のシステム時刻に設定します。
NTFS ファイル システムは UTC 形式で時刻値を格納するため、タイム ゾーンや夏時間の変更の影響を受けません。 FAT ファイル システムは、コンピューターの現地時刻に基づいて時刻値を格納します。
ファイルは、FILE_WRITE_ATTRIBUTESアクセスを使用して CreateFile 関数で開く必要があります。
#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;
}