工控编程吧

标题: 上位机MFC如何获得文件的信息 [打印本页]

作者: qq263946146    时间: 2019-8-1 11:54
标题: 上位机MFC如何获得文件的信息
文件信息的获取可以使用函数类CFile的静态成员函数GetStatus。例如               
CFileStatus FileStatus;
CFile::GetStatus(strPathName, FileStatus);
我们可以在自己的工程当中 调用下面代码来查看效果。
  1. void CDemoDlg::OnGetFileInfo()
  2. {
  3.         //创建文件对话框
  4.         CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY |
  5.                 OFN_OVERWRITEPROMPT, _T("所有文件(*.*)|*.*||"));

  6.         if (dlg.DoModal() == IDOK)
  7.         {
  8.                 //获得文件路径
  9.                 CString strPathName = dlg.GetPathName();

  10.                 //获得文件信息
  11.                 CFileStatus FileStatus;
  12.                 if (CFile::GetStatus(strPathName, FileStatus))
  13.                 {
  14.                         CString strText = _T("");
  15.                         CString strInfo = _T("");

  16.                         strInfo.Format(_T("名称:%s\n"),
  17.                                 FileStatus.m_szFullName);
  18.                         strText += strInfo;

  19.                         strInfo.Format(_T("大小:%d字节\n"),
  20.                                 FileStatus.m_size);
  21.                         strText += strInfo;

  22.                         strInfo.Format(_T("创建时间:%d年%d月%d日,%02d:%02d:%02d\n"),
  23.                                 FileStatus.m_ctime.GetYear(),
  24.                                 FileStatus.m_ctime.GetMonth(),
  25.                                 FileStatus.m_ctime.GetDay(),
  26.                                 FileStatus.m_ctime.GetHour(),
  27.                                 FileStatus.m_ctime.GetMinute(),
  28.                                 FileStatus.m_ctime.GetSecond());
  29.                         strText += strInfo;
  30.                         strInfo.Format(_T("修改时间:%d年%d月%d日,%02d:%02d:%02d\n"),
  31.                                 FileStatus.m_ctime.GetYear(),
  32.                                 FileStatus.m_ctime.GetMonth(),
  33.                                 FileStatus.m_ctime.GetDay(),
  34.                                 FileStatus.m_ctime.GetHour(),
  35.                                 FileStatus.m_ctime.GetMinute(),
  36.                                 FileStatus.m_ctime.GetSecond());
  37.                         strText += strInfo;
  38.                         strInfo.Format(_T("访问时间:%d年%d月%d日,%02d:%02d:%02d\n"),
  39.                                 FileStatus.m_ctime.GetYear(),
  40.                                 FileStatus.m_ctime.GetMonth(),
  41.                                 FileStatus.m_ctime.GetDay(),
  42.                                 FileStatus.m_ctime.GetHour(),
  43.                                 FileStatus.m_ctime.GetMinute(),
  44.                                 FileStatus.m_ctime.GetSecond());
  45.                         strText += strInfo;

  46.                         CString strFileAttributes = _T("");
  47.                         if (FileStatus.m_attribute & 0x00)
  48.                         {
  49.                                 strFileAttributes += _T("无\n");
  50.                         }
  51.                         if (FileStatus.m_attribute & 0x01)
  52.                         {
  53.                                 strFileAttributes += _T("只读\n");
  54.                         }
  55.                         if (FileStatus.m_attribute & 0x02)
  56.                         {
  57.                                 strFileAttributes += _T("隐藏\n");
  58.                         }
  59.                         if (FileStatus.m_attribute & 0x04)
  60.                         {
  61.                                 strFileAttributes += _T("系统\n");
  62.                         }
  63.                         if (FileStatus.m_attribute & 0x08)
  64.                         {
  65.                                 strFileAttributes += _T("卷标\n");
  66.                         }
  67.                         if (FileStatus.m_attribute & 0x10)
  68.                         {
  69.                                 strFileAttributes += _T("目录\n");
  70.                         }
  71.                         if (FileStatus.m_attribute & 0x20)
  72.                         {
  73.                                 strFileAttributes += _T("存档\n");
  74.                         }
  75.                         strInfo.Format(_T("属性:%s"), strFileAttributes);
  76.                         strText += strInfo;

  77.                         AfxMessageBox(strText);
  78.                 }
  79.         }
  80. }
复制代码
(, 下载次数: 0)