UDF > Date >


_Date_Time_GetFileTime

Obtient les dates/heures de création, d'accès et de modification d'un fichier

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

Paramètre

$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.

Valeur de retour

Retourne un tableau (array) au format suivant :
    [0] - structure $tagFILETIME contenant la date et l'heure de création du fichier
    [1] - structure $tagFILETIME contenant la date et l'heure du dernier accès du fichier
    [2] - structure $tagFILETIME contenant la date et l'heure de modification du fichier

Remarques

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.

En relation

$tagFILETIME, _Date_Time_SetFileTime

Exemple

#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