'------------------------------------------------------------------------------ ' 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 '------------------------------------------------------------------------------