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


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

Файловая система NTFS хранит значения времени в формате универсального глобального времени (UTC), таким образом на него не оказывается влияние при изменениях часового пояса или на летнее время. Файловая система FAT хранит значения времени, основанные на местном времени компьютера.

Обратите внимание! на то, что то, что файл должен быть открыт функцией CreateFile, используя доступ FILE_WRITE_ATTRIBUTES.

Демонстрационный пример

// SetFileToCurrentTime - устанавливает время последней записи в формате текущего времени системы
// Возвращаемое значение - TRUE, если функция завершилась успешно, иначе FALSE
// hFile  - дескриптор файла должен быть допустимым

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

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

    return f;
}

 

Назад в оглавление
На главную страницу
Переведено 09.01.2009 21:23 ©Copyright V. Sokovikov
Hosted by uCoz