Obtient les dates/heures de création, d'accès et de modification d'un fichier
#include <Date.au3>
_Date_Time_GetFileTime ( $hFile )
$hFile | Handle vers le fichier où les dates/heures seront récupérés. Le handle de fichier doit avoir été créé à l'aide de la fonction CreateFile avec le droit d'accès GENERIC_READ. |
Les dates de création et du dernier accès ne peuvent être enregistrées sur tous les systèmes de fichiers et l'enregistrement de celles-ci peut ne pas se faire de la même manière.
Par exemple, en FAT, la date de création a une précision de 10 millisecondes, la date de modification a une précision de 2 secondes, et la date du dernier accès a une précision de 1 jour (c'est bien ça, la date du dernier accès). Par conséquent, la fonction _Date_Time_GetFileTime() peut ne pas retourner les mêmes informations d'horodatage du fichier préalablement définies à l'aide de _Date_Time_SetFileTime().
Les délais du système de fichiers NTFS mettent à jour le dernier temps d'accès pour un fichier par l'ajout d'une heure après le dernier accès.
$tagFILETIME, _Date_Time_SetFileTime
#include <Date.au3> #include <GUIConstantsEx.au3> #include <WinAPIError.au3> #include <WinAPIFiles.au3> #include <WinAPIHObj.au3> #include <WindowsConstants.au3> Global $g_idMemo Example() Func Example() Local $hFile, $tFile, $aTime Local $sTempFile = @TempDir & "\Test.xyz" ; Crée la GUI GUICreate("Temps", 400, 300) $g_idMemo = GUICtrlCreateEdit("", 2, 2, 396, 296, $WS_VSCROLL) GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New") GUISetState(@SW_SHOW) ; Créer un fichier de test et définit les dates du fichier $hFile = _WinAPI_CreateFile($sTempFile, 1) If $hFile = 0 Then _WinAPI_ShowError("Impossible de créer le fichier") $tFile = _Date_Time_EncodeFileTime(@MON, @MDAY, @YEAR, @HOUR, @MIN, @SEC) _Date_Time_SetFileTime($hFile, $tFile, $tFile, $tFile) _WinAPI_CloseHandle($hFile) ; Lit les dates du fichier $hFile = _WinAPI_CreateFile($sTempFile, 2) If $hFile = 0 Then _WinAPI_ShowError("Impossible d'ouvrir le fichier") $aTime = _Date_Time_GetFileTime($hFile) _WinAPI_CloseHandle($hFile) MemoWrite("Créé . : " & _Date_Time_FileTimeToStr($aTime[0])) MemoWrite("Accédé . : " & _Date_Time_FileTimeToStr($aTime[1])) MemoWrite("Modifié . : " & _Date_Time_FileTimeToStr($aTime[2])) ; Boucle jusqu'à ce que l'utilisateur quitte. Do Until GUIGetMsg() = $GUI_EVENT_CLOSE FileDelete($sTempFile) EndFunc ;==>Example ; Écrit une ligne dans le contrôle mémo Func MemoWrite($sMessage) GUICtrlSetData($g_idMemo, $sMessage & @CRLF, 1) EndFunc ;==>MemoWrite