Function Reference


_Date_Time_GetFileTime

Retrieves the date and time that a file was created, accessed and modified

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

Parameters

$hFile Handle to the file for which dates and times are to be retrieved. The file handle must have been created using the CreateFile function with the GENERIC_READ access right.

Return Value

Returns an array with the following format:
[0] - $tagFILETIME structure with the date and time the file was created
[1] - $tagFILETIME structure with the date and time the file was accessed
[2] - $tagFILETIME structure with the date and time the file was modified

Remarks

Not all file systems can record creation and last access times and not all file systems record them in the same manner.
For example, on FAT, create time has a resolution of 10 milliseconds, write time has a resolution of 2 seconds, and access time has a resolution of 1 day (really, the access date). Therefore, the _Date_Time_GetFileTime() function may not return the same file time information set using _Date_Time_SetFileTime().
NTFS delays updates to the last access time for a file by up to one hour after the last access.

Related

$tagFILETIME, _Date_Time_SetFileTime

Example

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

Global $g_idMemo

Example()

Func Example()
    Local $hFile, $tFile, $aTime
    Local $sTempFile = @TempDir & "\Test.xyz"

    ; Create GUI
    GUICreate("Time", 400, 300)
    $g_idMemo = GUICtrlCreateEdit("", 2, 2, 396, 296, $WS_VSCROLL)
    GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New")
    GUISetState(@SW_SHOW)

    ; Create test file and set file times
    $hFile = _WinAPI_CreateFile($sTempFile, 1)
    If $hFile = 0 Then _WinAPI_ShowError("Unable to create file")
    $tFile = _Date_Time_EncodeFileTime(@MON, @MDAY, @YEAR, @HOUR, @MIN, @SEC)
    _Date_Time_SetFileTime($hFile, $tFile, $tFile, $tFile)
    _WinAPI_CloseHandle($hFile)

    ; Read file times
    $hFile = _WinAPI_CreateFile($sTempFile, 2)
    If $hFile = 0 Then _WinAPI_ShowError("Unable to open file")
    $aTime = _Date_Time_GetFileTime($hFile)
    _WinAPI_CloseHandle($hFile)

    MemoWrite("Created ..: " & _Date_Time_FileTimeToStr($aTime[0]))
    MemoWrite("Accessed .: " & _Date_Time_FileTimeToStr($aTime[1]))
    MemoWrite("Modified .: " & _Date_Time_FileTimeToStr($aTime[2]))

    ; Loop until the user exits.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    FileDelete($sTempFile)
EndFunc   ;==>Example

; Write a line to the memo control
Func MemoWrite($sMessage)
    GUICtrlSetData($g_idMemo, $sMessage & @CRLF, 1)
EndFunc   ;==>MemoWrite