Retrieves the date and time that a file was created, accessed and modified
_Date_Time_GetFileTime ( $hFile )
|$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.|
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.
#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)) MemoWrite("Accessed .: " & _Date_Time_FileTimeToStr($aTime)) MemoWrite("Modified .: " & _Date_Time_FileTimeToStr($aTime)) ; 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