我想要一个函数来获取一个文件,并且持续多少天,如果它比那个日期早,将返回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。 谢谢你们!
答案 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
然后,您可以使用字段wYear
,wMonth
等来与您的天数进行比较。
答案 1 :(得分:2)
GetFileTime获取与文件相关的各种日期。有example。
您需要获取上次写入时间,并计算从那里开始的天数差异。由于GetFileTime
函数返回了非常笨重的FILETIME
结构,您可能希望将其转换为struct SYSTEMTIME
的系统时间(FileTimeToSystemTime
)。