获取文件上次修改时间并进行比较

时间:2009-12-21 08:47:51

标签: c++ visual-c++

我想要一个函数来获取一个文件,并且持续多少天,如果它比那个日期早,将返回0否则1 ...这样的东西......

例如:

int IsOlder(TCHAR *filename, int days)
{

do operation.

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

}

这是适用于Windows的MS VC ++ 6。 谢谢你们!

2 个答案:

答案 0 :(得分:13)

Windows有一个名为GetFileTime()doc on MSDN)的API函数,它使用参数和3 FILETIME结构中的文件句柄来填充日期时间信息:

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

FILETIME结构进行了模糊处理,使用函数FileTimeToSystemTime()将其转换为更容易使用的SYSTEMTIME结构:

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

然后,您可以使用字段wYearwMonth等来与您的天数进行比较。

答案 1 :(得分:2)

GetFileTime获取与文件相关的各种日期。有example

您需要获取上次写入时间,并计算从那里开始的天数差异。由于GetFileTime函数返回了非常笨重的FILETIME结构,您可能希望将其转换为struct SYSTEMTIME的系统时间(FileTimeToSystemTime)。