# SetFileTime

Функция `SetFileTime` устанавливает дату и время создания, модификации и последнего доступа к файлу.

    BOOL SetFileTime(
      HANDLE hFile,
      CONST FILETIME *lpCreationTime,
      CONST FILETIME *lpLastAccessTime,
      CONST FILETIME *lpLastWriteTime
    );

### Параметры

hFile
идентифицирует файл, для которого устанавливаются дата и время. Файловый дескриптор должен быть создан с доступом `GENERIC_WRITE` к файлу.
lpCreationTime
указывает на структуру типа FILETIME, которая содержит дату и время создания файла. Значение этого параметра может быть равно `NULL`, если приложению не требуется эта информация.
lpLastAccessTime
указывает на структуру типа FILETIME, которая содержит дату и время последнего доступа к файлу. Время последнего доступа включает в себя время, когда в последний раз: в файл записывалась информация, читалась информация из файла, или, в случае исполняемых файлов, файл запускался на исполнение. Значение этого параметра может быть равно `NULL`, если приложению не требуется эта информация.
lpLastWriteTime
указывает на структуру типа FILETIME, которая содержит дату и время последней записи в файл. Значение этого параметра может быть равно `NULL`, если приложению не требуется эта информация.

### Возвращаемое значение

В случае успеха возвращается ненулевое значение.
Если функция завершается неудачно, возвращается ноль. Для получения дополнительной информации вызывайте функцию `GetLastError`.

### Замечания

Файловые системы FAT и NTFS поддерживают время создания файла, время последнего доступа к файлу и время последней записи в файл.

Точность, с которой сохраняются значения времени для файлов, зависит от используемой операционной системы, файловой системы, сетевой конфигурации. Подробнее см. замечания к структуре FILETIME.

FAT

- Точность значения времени для файла в файловой системе FAT - 2 секунды. Точность значения времени для файлов в других файловых системах, например, на сетевых дисках, зависит от файловой системы, но также может быть ограничена удалённым устройством.

### Пример

Следующий пример показывает, как установить дату/время модификации файла в значение текущего системного времени.

    BOOL SetFileToCurrentTime(HANDLE hFile)
    {
      FILETIME ft;
      SYSTEMTIME st;

      GetSystemTime(&st);                 // получить текущее время
      SystemTimeToFileTime(&st, &ft);     // преобразовать в файловый формат
      return SetFileTime(hFile,           // установить дату/время модификации файла
                  (LPFILETIME) NULL, (LPFILETIME) NULL, &ft);
    }

Смотрите также:
FILETIME, GetFileSize, GetFileTime, GetFileType