Не получится.
FilePath := "test.txt"
timetoset := 20180615151525
SetFileTime(FilePath, timetoset, "M")
SetFileTime(FilePath, timetoset, "C")
SetFileTime(FilePath, timetoset, "A")
return
; ======================================================================================================================
; SetFileTime
; -> docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-setfiletime
; TzSpecificLocalTimeToSystemTime
; -> docs.microsoft.com/en-us/windows/desktop/api/timezoneapi/nf-timezoneapi-tzspecificlocaltimetosystemtime
; SystemTimeToFileTime
; -> docs.microsoft.com/en-us/windows/desktop/api/timezoneapi/nf-timezoneapi-systemtimetofiletime
; CreateFile
; -> docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-createfilea
; FILE_WRITE_ATTRIBUTES 0x0100
; FILE_SHARE_READ 0x01 +
; FILE_SHARE_WRITE 0x02 +- 0X07
; FILE_SHARE_DELETE 0x04 +
; OPEN_EXISTING 3
; FILE_ATTRIBUTE_NORMAL 0x80
; ======================================================================================================================
SetFileTime(FilePath, TimeStamp, Type := "M") {
If !TimeStamp2SystemTime(TimeStamp, LocalTime)
Return False
If !(Handle := DllCall("CreateFile", "Str", FilePath, "UInt", 0x0100, "UInt", 0x07, "Ptr", 0
, "UInt", 3, "UInt", 0x80, "Ptr", 0, "UPtr"))
Return False
; Aktuelle Daten einlesen
VarSetCapacity(CTime, 16, 0)
VarSetCapacity(ATime, 16, 0)
VarSetCapacity(MTime, 16, 0)
If !DllCall("GetFileTime", "Ptr", Handle, "Ptr", &CTime, "Ptr", &ATime, "Ptr", &MTime, "UInt") {
DllCall("CloseHandle", "Ptr", Handle, "UInt")
Return False
}
; Geändertes Datum schreiben
VarSetCapacity(SystemTime, 16, 0)
DllCall("TzSpecificLocalTimeToSystemTime", "Ptr", 0, "Ptr", &LocalTime, "Ptr", &SystemTime, "UInt")
VarSetCapacity(FileTime, 8, 0)
DllCall("SystemTimeToFileTime", "Ptr", &SystemTime, "Ptr", &FileTime, "UInt")
PCT := Type = "C" ? &FileTime : &CTime
PAT := Type = "A" ? &FileTime : &ATime
PMT := Type = "M" ? &FileTime : &MTime
Result := DllCall("SetFileTime", "Ptr", Handle, "Ptr", PCT, "Ptr", PAT, "Ptr", PMT, "UInt")
DllCall("CloseHandle", "Ptr", Handle, "UInt")
Return Result
}
; ======================================================================================================================
; TimeStamp = YYYYMMDDHH24MISS (autohotkey.com/docs/commands/FileSetTime.htm#YYYYMMDD)
; SystemTime -> msdn.microsoft.com/en-us/f77cdf86-0f97-4a89-b565-95b46fa7d65b
; ======================================================================================================================
TimeStamp2SystemTime(TimeStamp, ByRef SystemTime) {
VarSetCapacity(SystemTime, 16, 0)
TimeStamp += 0, S
If (TimeStamp = "")
Return False
NumPut(SubStr(TimeStamp, 1, 4), SystemTime, 0, "UShort")
NumPut(SubStr(TimeStamp, 5, 2), SystemTime, 2, "UShort")
NumPut(SubStr(TimeStamp, 7, 2), SystemTime, 6, "UShort")
NumPut(SubStr(TimeStamp, 9, 2), SystemTime, 8, "UShort")
NumPut(SubStr(TimeStamp, 11, 2), SystemTime, 10, "UShort")
NumPut(SubStr(TimeStamp, 13, 2), SystemTime, 12, "UShort")
Return True
}