ファイルの作成、アクセス、変更日時を設定します。
#Include <Date.au3>
_Date_Time_SetFileTime($hFile, $pCreateTime, $pLastAccess, $pLastWrite)
パラメータ
$hFile |
ファイルのハンドル。 ファイルハンドルはCreateFile関数を使ってGENERIC_READアクセス権限で作成されたものでなければなりません。 |
$pCreateTime | 新しいファイル作成日時を格納した$tagFILETIME構造体へのポインタ。 アプリケーションでこの情報を設定する必要がない場合は0です。 |
$pLastAccess | 新しいファイル最終アクセス日時を格納した$tagFILETIME構造体へのポインタ。 最終アクセス時刻とはファイルが最後に書き込み、読み込み、(実行可能ファイルの場合)実行された時刻です。 アプリケーションでこの情報を設定する必要がない場合は0です。 既存の最終アクセス時刻をファイルのアクセス後にも保持したい場合は、 ファイルハンドルを閉じる前にこのパラメータを-1に設定してSetFileTimeを呼んでください。 |
$pLastWrite | 新しいファイル最終書き込み日時を格納した$tagFILETIME構造体へのポインタ。 アプリケーションでこの情報を設定する必要がない場合は0です。 |
返し値
成功: | True |
失敗: | False |
注意
全てのファイルシステムが作成時刻と最終アクセス時刻を記録するわけではありませんし、 記録していたとしても全てのファイルシステムが同じ形式でそれらを記録しているわけではありません。
関連
_Date_Time_GetFileTime, $tagFILETIME
例
#include <GuiConstantsEx.au3>
#include <WinAPI.au3>
#include <Date.au3>
#include <WindowsConstants.au3>
Global $iMemo
_Main()
Func _Main()
Local $hGUI, $hFile, $tFile, $aTime
; GUIを作成
$hGUI = 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)
$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
; メモコントロールに1行書き込む
Func MemoWrite($sMessage)
GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc ;==>MemoWrite