SetFileTime

Programming Far Manager plugins

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

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

Пример

Следующий пример показывает, как установить дату/время модификации файла в значение текущего системного времени.
BOOL SetFileToCurrentTime(HANDLE hFile)
{
  FILETIME ft;
  SYSTEMTIME st;

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