Поделиться через


Изменение времени файла на текущее время

В следующем примере задается время последней записи файла в текущее системное время с помощью функции 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;
}