读取文件修改时间

飞天舞 2009-05-20 05:13:35
HANDLE hFind = FindFirstFile("E:\\record.txt",&ffd);
::GetFileTime(hFind,&CreationTime,&LastAccessTime,&LastWriteTime);
::FileTimeToLocalFileTime(&LastWriteTime,&localfiletime);
::FileTimeToSystemTime(&localfiletime,&systemtime);
读取后发现年月日等时间和系统显示的时间不对应。
为什么?
...全文
76 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
oyljerry 2009-05-20
  • 打赏
  • 举报
回复
获取SYSTEMTIME后,看是否有时差的区别,年月日应该都跟系统一样了...
biweilun 2009-05-20
  • 打赏
  • 举报
回复

SYSTEMTIME systemtime, localfiletime;
WIN32_FIND_DATA ffd;
HANDLE hFind = FindFirstFile( _T("E:\\record.txt"), &ffd );
CString szTime;
FileTimeToSystemTime( &(ffd.ftLastWriteTime), &systemtime);

if( SystemTimeToTzSpecificLocalTime(NULL, &systemtime, &localfiletime ))
{
szTime.Format( _T("%04d%02d%02d %02d:%02d%:02d")
,localfiletime.wYear,
localfiletime.wMonth,
localfiletime.wDay,
localfiletime.wHour,
localfiletime.wMinute,
localfiletime.wSecond
);

}


szTime随你用什么格式都行
bk_wxb 2009-05-20
  • 打赏
  • 举报
回复
SYSTEMTIME stUTC, stLocal;

HANDLE hFind = FindFirstFile( "E:\\record.txt", &ffd );

if( FileTimeToSystemTime( &(ffd.ftLastWriteTime), &stUTC ))
{
if( SystemTimeToTzSpecificLocalTime( NULL, &stUTC, &stLocal ))
{
szTime.Format( _T("%04d%02d%02d-%02d%02d%02d")
,stLocal.wYear, stLocal.wMonth,stLocal.wDay, stLocal.wHour, stLocal.wMinute,stLocal.wSecond );
}
}
wutaihua 2009-05-20
  • 打赏
  • 举报
回复
mark下,你的思路应该是没错的。看看返回值,都是BOOL型,看看是不是有不成功的转换
Gavin001 2009-05-20
  • 打赏
  • 举报
回复
读取出来的还需要经过转换吧
有可能是格林威治时间与本地时间的差别
littlefish636 2009-05-20
  • 打赏
  • 举报
回复
ffd.ftLastWriteTime就是文件的修改时间...

16,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧