↑  ←  Описание функции


_Date_Time_GetFileTime

Возвращает дату и время создания, доступа и изменения файла

#include <Date.au3>
_Date_Time_GetFileTime($hFile)

Параметры

$hFile Дескриптор файла, для которого должно быть получено время и дата. Дескриптор файла должен быть создан с использованием функции CreateFile и с правами доступа GENERIC_READ.

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

Возвращает массив следующего формата:
    [0] - структура $tagFILETIME с датой и временем создания
    [1] - структура $tagFILETIME с датой и временем доступа
    [2] - структура $tagFILETIME с датой и временем изменения

Примечания

Не все файловое системы могут записывать время создания и доступа, и не все файловые системы записывают их таким образом. Например, в FAT, время создания имеет разрешение в 10 миллисекунд, время записи имеет разрешение в 2 секунды, и время доступа имеет разрешение в 1 день (на самом деле дату доступа). Таким образом, функция GetFileTime может не вернуть информацию о файловом времени, установленном через SetFileTime. В NTFS задержка обновления времени последнего доступа к файлу составляет один час после последнего доступа.

См. также

_Date_Time_SetFileTime, $tagFILETIME

Пример

#include <GUIConstantsEx.au3>
#include <WinAPI.au3>
#include <Date.au3>
#include <WindowsConstants.au3>

Global $iMemo

_Main()

Func _Main()
    Local $hGUI, $hFile, $tFile, $aTime

    ; Создаёт GUI
    $hGUI = GUICreate("Время", 400, 300)
    $iMemo = GUICtrlCreateEdit("", 2, 2, 396, 296, $WS_VSCROLL)
    GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
    GUISetState()

    ; Создание тестового файла и установка времени для него
    $hFile = _WinAPI_CreateFile(@ScriptDir & "\Test.xyz", 1)
    if $hFile = 0 then _WinAPI_ShowError("Не удалось создать файл")
    $tFile = _Date_Time_EncodeFileTime(@MON, @MDAY, @YEAR, @HOUR, @MIN, @SEC)
    $pFile = DllStructGetPtr($tFile)
    _Date_Time_SetFileTime($hFile, $pFile, $pFile, $pFile)
    _WinAPI_CloseHandle($hFile)

    ; Чтение времени файла
    $hFile = _WinAPI_CreateFile(@ScriptDir & "\Test.xyz", 2)
    if $hFile = 0 then _WinAPI_ShowError("Не удалось открыть файл")
    $aTime = _Date_Time_GetFileTime($hFile)
    _WinAPI_CloseHandle($hFile)

    MemoWrite("Создан           .: " & _Date_Time_FileTimeToStr($aTime[0]))
    MemoWrite("Последний доступ .: " & _Date_Time_FileTimeToStr($aTime[1]))
    MemoWrite("Изменен          .: " & _Date_Time_FileTimeToStr($aTime[2]))

    ; Цикл выполняется, пока окно не будет закрыто
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    FileDelete(@ScriptDir & "\Test.xyz")

EndFunc   ;==>_Main

; Записывает строку в элемент для заметок
Func MemoWrite($sMessage)
    GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc   ;==>MemoWrite