设置文件创建,访问,修改日期与时间
#Include <Date.au3>
_Date_Time_SetFileTime($hFile, $pCreateTime, $pLastAccess, $pLastWrite)
$hFile | 文件句柄,使用 _WinAPI_CreateFile 函数的返回值, 并具有 FILE_WRITE_ATTRIBUTES 访问权. |
$pCreateTime | $tagFILETIME 结构指针, 它包含创建文件的新日期和时间. 如果应用程序不需要此信息, 设置此参数为 0. |
$pLastAccess | $tagFILETIME 结构指针, 它包含文件的新的最后访问日期和时间, 包括文件上次写入,读取,或运行(可执行文件) 如果应用程序不需要此信息, 设置此参数为 0. 为了保持文件的现有上次访问时间,调用 SetFileTime 参数, 并设置为 -1 之前关闭文件句柄. |
$pLastWrite | $tagFILETIME 结构指针, 包含文件的最后写入日期和时间. 如果应用程序不需要此信息, 设置此参数为 0. |
成功: | 返回 True |
失败: | 返回 False |
#include <GUIConstantsEx.au3>
#include <WinAPI.au3>
#include <Date.au3>
#include <WindowsConstants.au3>
Global $iMemo
_Main()
Func _Main()
Local $hFile, $tFile, $aTime
; 创建 GUI
GUICreate("Time", 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("Unable to create file")
$tFile = _Date_Time_EncodeFileTime(@MON, @MDAY, @YEAR, @HOUR, @MIN, @SEC)
Local $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("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]))
; 循环直到用户退出
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
FileDelete(@ScriptDir & "\Test.xyz")
EndFunc ;==>_Main
; 写入一行到 memo 控件
Func MemoWrite($sMessage)
GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc ;==>MemoWrite