File "FileDate.inc"
Path: /linkedit/FileDate.inc
File size: 2.65 KB
MIME-type:
Charset: utf-8
'------------------------------------------------------------------------------
' This is FileDate.inc to be used in PowerBasic 9.0
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
#INCLUDE ONCE "win32api.inc"
'------------------------------------------------------------------------------
UNION QDFTUnion
mQD AS QUAD
mFT AS FILETIME
END UNION
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
FUNCTION CreatedDate(BYVAL file AS STRING) AS STRING
LOCAL sFilename AS STRING
LOCAL udtDirData AS DIRDATA
sFilename = DIR$(file TO udtDirData) : DIR$ CLOSE
FUNCTION = DateString(udtDirData.CreationTime)
END FUNCTION
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
FUNCTION ModifiedDate(BYVAL file AS STRING) AS STRING
LOCAL sFilename AS STRING
LOCAL udtDirData AS DIRDATA
sFilename = DIR$(file TO udtDirData) : DIR$ CLOSE
FUNCTION = DateString(udtDirData.LastWriteTime)
END FUNCTION
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
FUNCTION AccessedDate(BYVAL file AS STRING) AS STRING
LOCAL sFilename AS STRING
LOCAL udtDirData AS DIRDATA
sFilename = DIR$(file TO udtDirData) : DIR$ CLOSE
FUNCTION = DateString(udtDirData.LastAccessTime)
END FUNCTION
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
FUNCTION DateString(BYVAL v_ddt AS QUAD) AS STRING
LOCAL v_udtTemp AS QDFTUnion
LOCAL v_udtSystemTime AS SYSTEMTIME
' Convert to local time
' FYI: WinOS stores timestamps in UTC time
v_udtTemp.mQD = v_ddt
' Convert from UTC Tz (WinOS default) to local Tz
FileTimeToLocalFileTime v_udtTemp.mFT, v_udtTemp.mFT
' Convert to ST structure
FileTimeToSystemTime v_udtTemp.mFT, v_udtSystemTime
' Return formatted string
FUNCTION = FORMAT$(v_udtSystemTime.wYear, "0000") + "-" + _
FORMAT$(v_udtSystemTime.wMonth, "00" ) + "-" + _
FORMAT$(v_udtSystemTime.wDay, "00" ) + ", " + _
FORMAT$(v_udtSystemTime.wHour, "00" ) + ":" + _
FORMAT$(v_udtSystemTime.wMinute, "00" ) + ":" + _
FORMAT$(v_udtSystemTime.wSecond, "00" )
END FUNCTION
'------------------------------------------------------------------------------