MFC应用实例:[49]获取修改文件创建时间

2025-10-31 21:42:12

1、新建一个基于对话框的应用程序,工程名为FileTime。

MFC应用实例:[49]获取修改文件创建时间

2、如下图为对话框添加二个按钮,一个编辑框,四个静态文本和三个日历控件。

MFC应用实例:[49]获取修改文件创建时间

3、为“...”按钮建立响应函数OnBUTTONOpenFile(),在响应函数OnBUTTONOpenFile()中添加一下代码:

void CFileTimeDlg::OnBUTTONOpenFile() 

{

char filter[] = "所有文件(*.*)|*.*||";//设置文件类型过滤

CFileDialog fdlg(true, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, filter);//文件对话框

fdlg.m_ofn.lpstrInitialDir = "c:\\"; //设置初始文件目录

if(fdlg.DoModal() == IDOK) //弹出对话框,如果单击的是"OK"按钮

{

//得到打开的文件的文件名显示在编辑框中

GetDlgItem(IDC_EDIT1)->SetWindowText(fdlg.GetPathName());

CFileStatus  status;//获取文件相关时间

if(CFile::GetStatus(fdlg.GetPathName(), status))

{

m_createTime = status.m_ctime;//得到创建时间

m_modifyTime = status.m_mtime;//得到修改时间

m_accessTime = status.m_atime;//得到访问时间

UpdateData(false);

  }

}

}

MFC应用实例:[49]获取修改文件创建时间

4、为设置按钮建立响应函数OnButtonSet(),在响应函数OnButtonSet()中添加一下代码:

void CFileTimeDlg::OnButtonSet() 

{

UpdateData(true);  //将日期值写入变量中

CString fileName = "";

GetDlgItem(IDC_EDIT1)->GetWindowText(fileName);//获取文件路径名

HANDLE file = CreateFile(fileName, GENERIC_WRITE, FILE_SHARE_READ, NULL, 

OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

FILETIME ctime,atime,wtime;//系统时间转换成文件时间

SYSTEMTIME sctime,satime,swtime;

//创建时间转换

sctime.wYear =m_createTime.GetYear (); //得到创建时间年

sctime.wMonth =m_createTime.GetMonth(); //得到创建时间月

sctime.wDay =m_createTime.GetDay (); //得到创建时间天

sctime.wHour =0;

sctime.wMinute=0;

sctime.wSecond =0;

sctime.wDayOfWeek=0;

sctime.wMilliseconds =0;

SystemTimeToFileTime(&sctime,&ctime);//时间转换

satime.wYear = m_accessTime.GetYear ();//访问时间转换

satime.wMonth = m_accessTime.GetMonth();

satime.wDay = m_accessTime.GetDay ();

satime.wHour =0;

satime.wMinute=0;

satime.wSecond =0;

satime.wDayOfWeek=0;

satime.wMilliseconds =0;

if(!SystemTimeToFileTime(&satime,&atime))MessageBox("ERROR");

swtime.wYear = m_modifyTime.GetYear ();//修改时间转换

swtime.wMonth = m_modifyTime.GetMonth();

swtime.wDay = m_modifyTime.GetDay ();

swtime.wHour =0;

swtime.wMinute=0;

swtime.wSecond =0;

swtime.wDayOfWeek=0;

swtime.wMilliseconds =0;

if(!SystemTimeToFileTime(&swtime,&wtime))MessageBox("ERROR");

if(SetFileTime(file,&ctime,&atime,&wtime))//设置时间修改

{

MessageBox("文件时间修改成功!");

}

CloseHandle(file);//关闭句柄

}

MFC应用实例:[49]获取修改文件创建时间

5、程序运行如下:

MFC应用实例:[49]获取修改文件创建时间

MFC应用实例:[49]获取修改文件创建时间

MFC应用实例:[49]获取修改文件创建时间

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢