'============
'FILETIME.BAS (FOR WINDOWS ONLY)
'============
'Win32 API fucntions to get/set time info of a file.
'Shows when file was created, modified, accessed.
'QB64 code by Dav, AUG/2020
 
'All API info found on this page:
'http://allapi.mentalis.org/apilist/apilist.php
 
 
 
 
    FUNCTION GetFileTime& 
(BYVAL hFile&
, lpCreationTime 
AS FILETIME
, lpLastAccessTime 
AS FILETIME
, lpLastWriteTime 
AS FILETIME
)     FUNCTION SetFileTime& 
(BYVAL hFile&
, lpCreationTime 
AS FILETIME
, lpLastAccessTime 
AS FILETIME
, lpLastWriteTime 
AS FILETIME
)     FUNCTION FileTimeToSystemTime& 
(lpFileTime 
AS FILETIME
, lpSystemTime 
AS SYSTEMTIME
)     FUNCTION FileTimeToLocalFileTime& 
(lpFileTime 
AS FILETIME
, lpLocalFileTime 
AS FILETIME
)  
DIM F1 
AS FILETIME
, F2 
AS FILETIME
, F3 
AS FILETIME
, SysTime 
AS SYSTEMTIME
  
 
fil$ = "qb64.exe" 'use qb64.exe for a test
PRINT "Results for file: "; fil$
  
'create file handle (using open as existing, so not creating a file)
hFile = CreateFileA(fil$, 0, 0, 0, OPEN_EXISTING, 0, 0)
 
'Get file's time info
x& = GetFileTime(hFile, F1, F2, F3)
 
    PRINT "Invalid handle error. File not opened.": 
END  
'See when file was created.....
x& = FileTimeToLocalFileTime(F1, F1) 'Convert file time to local file time
x& = FileTimeToSystemTime(F1, SysTime) 'Convert file time to system file time
PRINT "Created : "; SysTime.wMonth; 
"/"; SysTime.wDay; 
"/"; SysTime.wYear
  
'See when file was last accessed.....
x& = FileTimeToLocalFileTime(F2, F1) 'Convert file time to local file time
x& = FileTimeToSystemTime(F1, SysTime) 'Convert file time to system file time
PRINT "Accessed: "; SysTime.wMonth; 
"/"; SysTime.wDay; 
"/"; SysTime.wYear
  
'See when file was last modified.....
x& = FileTimeToLocalFileTime(F3, F1) 'Convert file time to local file time
x& = FileTimeToSystemTime(F1, SysTime) 'Convert file time to system file time
PRINT "Modified: "; SysTime.wMonth; 
"/"; SysTime.wDay; 
"/"; SysTime.wYear
  
'close file handle
x& = CloseHandle(hFile)