tags:

views:

79

answers:

2

Hi

I want a piece of function which will take a file and last how many days, if it was older than that date, will return 0 otherwise 1... Something like that...

For example:

int IsOlder(TCHAR *filename, int days)
{

do operation.

If last modify date was older than days variable
return 0
else
return 1

}

It's MS VC++ 6 for Windows. Thanks from now!

+1  A: 

GetFileTime gets the various dates relevant to a file. There's an example.

You will need to fetch the last write time, and calculate the difference in days from there. As the GetFileTime function returns the quite unwieldy FILETIME structure you probably want to convert it into system time (struct SYSTEMTIME) with FileTimeToSystemTime.

Skurmedel
+2  A: 

Windows has an API function called GetFileTime() (doc on MSDN) taking a file handle in parameter and 3 FILETIME structures to be filled with date-time info:

FILETIME creationTime,
         lpLastAccessTime,
         lastWriteTime;
bool err = GetFileTime( h, &creationTime, &lpLastAccessTime, &lastWriteTime );
if( !err ) error

The FILETIME structure is obfuscated, use the function FileTimeToSystemTime() to translate it to a SYSTEMTIME structure which is way easier to use:

SYSTEMTIME systemTime;
bool res = FileTimeToSystemTime( &creationTime, &systemTime );
if( !res ) error

Then you can use fields wYear, wMonth, etc. to compare with your number of days.

Julien L.