hi,
first you need to use
FILETIME-Struktur to create right FileTime.
FUNCTION FileTime(dDate, cTime) // API FileTime
LOCAL cConvertTime, cFileTime:=Space(8)
IF dDate==NIL .AND. cTime==NIL
DllCall("Kernel32.dll",DLL_STDCALL,"GetSystemTimeAsFileTime", @cFileTime)
RETURN cFileTime
ENDIF
dDate:=IF(dDate=NIL,Date(),dDate)
cTime:=IF(cTime=NIL,Time(),cTime)
cConvertTime := w2Bin(Year(dDate))+;
w2Bin(Month(dDate))+;
w2Bin(0)+;
w2Bin(Day(dDate))+;
w2Bin(THours(cTime))+;
w2Bin(TMins(cTime))+;
w2Bin(TSecs(cTime))+;
w2Bin(0)
IF DllCall("Kernel32.dll",DLL_STDCALL,"SystemTimeToFileTime", cConvertTime, @cFileTime)==0
RETURN Space(8)
ENDIF
RETURN cFileTime
than you need to use API
SetFileTime function
FUNCTION SetFileTime(cFile, aTime) // API SetFileTime
LOCAL cCreation
LOCAL cAccess
LOCAL cWrite
LOCAL nKernel32Dll
LOCAL nH
LOCAL nPt := 0
IF PCOUNT() = 2
cCreation := aTime[1]
cAccess := aTime[2]
cWrite := aTime[3]
nKernel32Dll:=DllLoad("Kernel32.dll")
nH := FOPEN(cFile, FO_WRITE+FO_SHARED )
If nKernel32Dll > 0 .AND. nH # -1
nPt := DllCall(nKernel32Dll, DLL_STDCALL, 'SetFileTime', nH, @cCreation, @cAccess, @cWrite)
DllUnload(nKernel32Dll)
EndIf
IF nH # -1
FCLOSE(nH)
ENDIF
ENDIF
IF nPt = 0
ALERT( FormatErrorMessage( nPt ) )
ENDIF
RETURN NIL
Jim