Setzt das Datum und die Zeit einer Datei für den Status Erstellt, letzter Zugriff und Verändert
#Include <Date.au3>
_Date_Time_SetFileTime($hFile, $pCreateTime, $pLastAccess, $pLastWrite)
Parameter
| $hFile | Handle zu der Datei. Das Datei Handle muss mit der Funktion CreateFile und FILE_WRITE_ATTRIBUTES Zugriffsrechten erstellt worden sein. |
| $pCreateTime | Zeiger auf eine $tagFILETIME Struktur, die das neue Datum und Uhrzeit für 'Datei erstellt' beinhaltet. Wenn '0' gesetzt wird, wird diese Information nicht verändert. |
| $pLastAccess | Zeiger auf eine $tagFILETIME Struktur die das neue Datum und Uhrzeit für 'letzter Zugriff' beinhaltet. Die Zeitangabe für 'letzter Zugriff' gilt auch für den letzten Schreib- /Lesezugriff oder (im Falle einer ausführbaren Datei) deren letzte Ausführung. Wenn '0' gesetzt wird, wird diese Information nicht verändert. Um den Zeitstempel einer Datei für 'letzter Zugriff' auch nach Zugriff unverändert zu bewahren, ist die Funktion _Date_Time_SetFileTime und dieser Parameter mit -1 aufzurufen, bevor das Handle der Datei beendet wird. |
| $pLastWrite | Zeiger auf eine $tagFILETIME Struktur, die das neue Datum und Uhrzeit für 'Datei verändert' beinhaltet. Wenn '0' gesetzt wird, wird diese Information nicht verändert. |
Rückgabewert
| Erfolg: | True |
| Fehler: | False |
Bemerkungen
Nicht alle Dateisysteme können die Daten für 'Erstellung' und 'letzten Zugriff' speichern und die Dateisysteme
Verwandte Funktionen
_Date_Time_GetFileTime, $tagFILETIME
Beispiel
#include <GuiConstantsEx.au3>
#include <WinAPI.au3>
#include <Date.au3>
#include <WindowsConstants.au3>
Global $iMemo
_Main()
Func _Main()
Local $hGUI, $hFile, $tFile, $aTime
; Erstellen der GUI
$hGUI = GUICreate("Zeit", 400, 300)
$iMemo = GUICtrlCreateEdit("", 2, 2, 396, 296, $WS_VSCROLL)
GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
GUISetState()
; Erzeugen einer Test Datei und setzen der Dateizeit
$hFile = _WinAPI_CreateFile(@ScriptDir & "\Test.xyz", 1)
If $hFile = 0 Then _WinAPI_ShowError("Die Datei konnte nicht erstellt werden")
$tFile = _Date_Time_EncodeFileTime(@MON, @MDAY, @YEAR, @HOUR, @MIN, @SEC)
$pFile = DllStructGetPtr($tFile)
_Date_Time_SetFileTime($hFile, $pFile, $pFile, $pFile)
_WinAPI_CloseHandle($hFile)
; Liest die Dateizeit
$hFile = _WinAPI_CreateFile(@ScriptDir & "\Test.xyz", 2)
If $hFile = 0 Then _WinAPI_ShowError("Die Datei konnte nicht geöffnet werden")
$aTime = _Date_Time_GetFileTime($hFile)
_WinAPI_CloseHandle($hFile)
MemoWrite("Erstellt ..: " & _Date_Time_FileTimeToStr($aTime[0]))
MemoWrite("Letzter Zugriff .: " & _Date_Time_FileTimeToStr($aTime[1]))
MemoWrite("Letzte Änderung .: " & _Date_Time_FileTimeToStr($aTime[2]))
; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
FileDelete(@ScriptDir & "\Test.xyz")
EndFunc ;==>_Main
; Schreibt eine Zeile in das Memo Control
Func MemoWrite($sMessage)
GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc ;==>MemoWrite