169上位机VC MFC文件创建修改访问时间获取与设置
169上位机VC MFC文件创建修改访问时间获取与设置
功能展示
有时编写上位机时,程序保存的文件经过用户手工修改后会出现异常,我们就得判断用户是否修改过文件,再进一步处理。此功能可以通过文件的创建修改和访问时间的致性来实现;当前例程实现的文件创建修改访问时的读取与修改,如图; 要点提示 文件属性的获取可以用GetStatus()函数实现,文件属性的修改可以通过SetStatus()实现,两个函数都为Cfile文件类的静态成员函数;两函数都有两个参数,第一个参数为文件对像的路径名,第二个参数为一个CFileStatus的类,此类就包含了我们想要的属性;
实现功能 1.新建基于对话框的应用程序 2.拖拽一编辑框ID为IDC_EDIT1用于显示指定文件的路径; 拖拽一按钮控件,用于打开要操作的文件,并关联函数; 拖拽一组合框,ID修改为IDC_COMBO1,用于显示文件的创建,修改,访问时间;
最后是设置与获取文件时间的按钮功能实现; - void CGkbc8Dlg::OnOpen()
- {
- CFileDialog Dlg(TRUE,NULL,NULL,NULL,NULL,this);
- if(Dlg.DoModal()==IDCANCEL) return;
- SetDlgItemText(IDC_EDIT1,Dlg.GetPathName());
- }
- void CGkbc8Dlg::OnGet()
- {
- CString sFile;
- GetDlgItemText(IDC_EDIT1,sFile);
- CComboBox* pCombo = (CComboBox*)GetDlgItem(IDC_COMBO1);
- CFileStatus Status;
- if(CFile::GetStatus(sFile,Status))
- {
- pCombo->ResetContent();
- pCombo->AddString(Status.m_ctime.Format("文件建立时间:%Y年%m月%d日 %H时%M分%S秒"));
- pCombo->AddString(Status.m_mtime.Format("文件修改时间:%Y年%m月%d日 %H时%M分%S秒"));
- pCombo->AddString(Status.m_atime.Format("文件访问时间:%Y年%m月%d日 %H时%M分%S秒"));
- pCombo->SetCurSel(0);
- }
-
复制代码- else
- AfxMessageBox("获取失败");
- }
- void CGkbc8Dlg::OnSet()
- {
- CString sFile;
- GetDlgItemText(IDC_EDIT1,sFile);
- CFileStatus Status;
- CFile::GetStatus(sFile,Status);
- CTime CreateTime=CTime::GetCurrentTime();
- CTime ModifyTime=CreateTime;
- CTime AccessTime=CreateTime;
- Status.m_ctime = CreateTime;//设置创建时间
- Status.m_mtime = ModifyTime;//设置修改时间
- Status.m_atime = AccessTime;//访问时间
- CFile::SetStatus(sFile,Status);
- }
复制代码我们来演示下功能实现的整个过程
|