Page 1 of 1

Date of the last file change

Posted: Thu Feb 06, 2020 2:07 pm
by Natter
Hi,

How to find out the date of the last file change ?

Re: Date of the last file change

Posted: Thu Feb 06, 2020 2:47 pm
by karinha

Code: Select all

   cFILE := "C:\INST_NFE\MyProgam.exe"

   aDIR  := DIRECTORY( cFILE )

   dEXE  := aDIR[1] [3]

   dDateVersion := DTOC( dEXE )
 

Re: Date of the last file change

Posted: Thu Feb 06, 2020 3:04 pm
by Natter
Thanks.
And how do I find out the date when the file was created and the date when the file was last opened ?

Re: Date of the last file change

Posted: Thu Feb 06, 2020 4:59 pm
by karinha
If I understand correctly ... Create a database and save all the information on system usage in this database. Sorry if that's not it.

Regards.

Re: Date of the last file change

Posted: Thu Feb 06, 2020 8:14 pm
by nageswaragunupudi

Code: Select all

   local oFs, oFile, cFile

   oFs   := CreateObject( "Scripting.FileSystemObject" )
   cFile := "c:\fwh\samples\maria01.prg"
   if oFs:FileExists( cFile )
      oFile := oFs:GetFile( cFile )
      ? oFile:DateCreated, oFile:DateLastModified, oFile:DateLastAccessed
   else
      ? cFile + " does not exist"
   endif
 
https://docs.microsoft.com/en-us/office ... ect-object

Re: Date of the last file change

Posted: Fri Feb 07, 2020 5:38 am
by Natter
Thanks, Mr.Rao. This is what you need !

Re: Date of the last file change

Posted: Fri Feb 07, 2020 6:33 am
by MaxP
Another solution

Code: Select all

#include "Fivewin.ch"


FUNCTION MAIN()
        LOCAL   dDate
        
        dDate := FCREATEDATE( "C:\TEST.PDF" )
                
        MsgStop( dDate )
RETURN NIL


#pragma BEGINDUMP

#include <windows.h>
#include "hbapi.h"

HB_FUNC( FCREATEDATE )

{
        HANDLE          hFile  ;
        WIN32_FIND_DATA wfd ;
        SYSTEMTIME      st ;

        hFile = FindFirstFile( hb_parc( 1 ), &wfd ) ; 
        if ( hFile != INVALID_HANDLE_VALUE )  {
                FileTimeToSystemTime( &wfd.ftCreationTime, &st ) ;
        
                FindClose( hFile ) ;
        }   
        else  {
                st.wYear = 0 ;
                st.wMonth = 0 ;
                st.wDay = 0 ;
        }
        
        hb_retd( st.wYear, st.wMonth, st.wDay ) ;
}

#pragma ENDDUMP
regards
Massimo

Re: Date of the last file change

Posted: Fri Feb 07, 2020 1:01 pm
by MarcoBoschi
Please,
the definition of oFile:DateLastAccessed?

How can I try this?
How do I open a file to find that modified parameter?

Many thanks
Marco

Re: Date of the last file change

Posted: Fri Feb 07, 2020 2:15 pm
by MaxP
Hi Marco,

I send you an example with LastAccess and LastWrite

Code: Select all

#include "Fivewin.ch"


FUNCTION MAIN()
        LOCAL   dDate
        
        dDate := FCREATEDATE( "C:\TEST.PDF" )        
                
        MsgStop( dDate )
        
        dDate := FLACCESSDATE( "C:\TEST.PDF" )        
                
        MsgStop( dDate )
        
        dDate := FLWRITEDATE( "C:\TEST.PDF" )        
                
        MsgStop( dDate )
RETURN NIL


#pragma BEGINDUMP

#include <windows.h>
#include "hbapi.h"

HB_FUNC( FCREATEDATE )

{
        HANDLE          hFile  ;
        WIN32_FIND_DATA wfd ;
        SYSTEMTIME      st ;

        hFile = FindFirstFile( hb_parc( 1 ), &wfd ) ; 
        if ( hFile != INVALID_HANDLE_VALUE )  {
                FileTimeToSystemTime( &wfd.ftCreationTime, &st ) ;
        
                FindClose( hFile ) ;
        }   
        else  {
                st.wYear = 0 ;
                st.wMonth = 0 ;
                st.wDay = 0 ;
        }
        
        hb_retd( st.wYear, st.wMonth, st.wDay ) ;
}

HB_FUNC( FLACCESSDATE )

{
        HANDLE          hFile  ;
        WIN32_FIND_DATA wfd ;
        SYSTEMTIME      st ;

        hFile = FindFirstFile( hb_parc( 1 ), &wfd ) ; 
        if ( hFile != INVALID_HANDLE_VALUE )  {
                FileTimeToSystemTime( &wfd.ftLastAccessTime, &st ) ;
        
                FindClose( hFile ) ;
        }   
        else  {
                st.wYear = 0 ;
                st.wMonth = 0 ;
                st.wDay = 0 ;
        }
        
        hb_retd( st.wYear, st.wMonth, st.wDay ) ;
}


HB_FUNC( FLWRITEDATE )

{
        HANDLE          hFile  ;
        WIN32_FIND_DATA wfd ;
        SYSTEMTIME      st ;

        hFile = FindFirstFile( hb_parc( 1 ), &wfd ) ; 
        if ( hFile != INVALID_HANDLE_VALUE )  {
                FileTimeToSystemTime( &wfd.ftLastWriteTime, &st ) ;
        
                FindClose( hFile ) ;
        }   
        else  {
                st.wYear = 0 ;
                st.wMonth = 0 ;
                st.wDay = 0 ;
        }
        
        hb_retd( st.wYear, st.wMonth, st.wDay ) ;
}

#pragma ENDDUMP
regards
Massimo