Функция CompareFileTime

Declare Function CompareFileTime Lib "kernel32" (lpFileTime1 As FILETIME,_ 
    lpFileTime2 As FILETIME) As Long

CompareFileTime сравнивает две даты, хранимые в FILETIME, определяя более раннюю дату в хронологическом порядке. Если первая дата более ранняя, чем вторая, то возвращается -1. Если даты совпадают, то функция возвращает 0. Если первая дата более поздняя по времени, чем вторая, то возвращается 1.

Параметры

lpFileTime1
Первая дата для сравнения
lpFileTime2
Вторая дата для сравнения

Пример

' Сравниваем дату создания файла autoexec.bat
' с какой-нибудь датой
Dim hfile As Long  ' описатель файла
Dim ctime As FILETIME  ' время создания файла
Dim atime As FILETIME  ' время последнего открытия файла
Dim wtime As FILETIME  ' время последнего изменения файла
Dim anytime As SYSTEMTIME  ' установим какую-нибудь дату(8 марта 2001)
Dim anyfiletime As FILETIME  ' дата в привычном формате
Dim comptimes As Long  ' результат сравнения двух дат
Dim retval As Long  ' возвращаемое значение

' Получаем описатель файла
hfile = CreateFile("C:\autoexec.bat", GENERIC_READ, FILE_SHARE_READ, ByVal CLng(0), OPEN_EXISTING, FILE_ATTRIBUTE_ARCHIVE, 0)
If hfile = -1 Then
  Debug.Print "Не могу открыть указанный файл"
  End  ' выходим из программы
End If
' Получаем время создания, последнего открытия и изменения файла
retval = GetFileTime(hfile, ctime, atime, wtime)
' Установим дату 8 марта 2001 как anytime
anytime.wMonth = 3: anytime.wDay = 8: anytime.wYear = 2001
anytime.wHour = 0: anytime.wMinute = 0: anytime.wSecond = 0
' конвертируем anytime в формат FILETIME для сравнения с ctime
retval = SystemTimeToFileTime(anytime, anyfiletime)
' Сравниваем две даты
comptimes = CompareFileTime(ctime, anyfiletime)
If comptimes = -1 Then Debug.Print "Файл создан перед 8 марта 2001 года"
If comptimes = 0 Then Debug.Print "Файл создан в полночь 8 марта 2001 года"
If comptimes = 1 Then Debug.Print "Файл создан после 8 марта 2001 года"
' Закрываем файл
retval = CloseHandle(hfile)

Категория

Время

Реклама