'===========================================================================
' Subject: GET DATE/TIME STAMP OF FILE        Date: 01-20-98 (12:14)       
'  Author: Dave Navarro, Jr.                  Code: PBDLL                  
'  Origin: dave@powerbasic.com              Packet: PBDLL.ABC
'===========================================================================
'===========================================================================
'
' FileDateTime for PB/DLL 5.0
' Copyright (c) 1998 by PowerBASIC, Inc.
'
'===========================================================================

$COMPILE EXE
$INCLUDE "WIN32API.INC"

FUNCTION FileDateTime(BYVAL Filenam AS STRING) AS STRING

  LOCAL fd    AS WIN32_FIND_DATA
  LOCAL fh    AS LONG
  LOCAL zText AS ASCIIZ * 255
  LOCAL st    AS SYSTEMTIME
  LOCAL Temp  AS STRING

  zText = Filenam

  ' -- Find the file
  fh = FindFirstFile(zText, fd)
  IF fh = %INVALID_HANDLE_VALUE THEN
    EXIT FUNCTION
  END IF
  FindClose fh

  ' -- Convert the file time from UTC to local time
  FileTimeToLocalFileTime fd.ftLastWriteTime, fd.ftLastWriteTime

  ' -- Convert the file time into a compatible system time
  FileTimeToSystemTime fd.ftLastWriteTime, st

  ' -- Create a date string using the local settings
  GetDateFormat %LOCAL_USER_DEFAULT, %DATE_SHORTDATE, st, BYVAL %NULL, zText, 255
  Temp = zText

  ' -- Create a time string using the local settings
  GetTimeFormat %LOCAL_USER_DEFAULT, %TIME_NOSECONDS, st, BYVAL %NULL, zText, 255

  ' -- Return the file date and time
  FUNCTION = Temp + "  " + zText

END FUNCTION

FUNCTION WinMain (BYVAL CurInst&, _
                  BYVAL PrvInst&, _
                  CmdLine AS ASCIIZ PTR, _
                  BYVAL CmdShow&) EXPORT AS LONG

  MsgBox FileDateTime("C:\AUTOEXEC.BAT")

END FUNCTION
