author: 零贰
title: VC++之文件高级操作之获取文件属性
date: 2010-11-08 01:52:11
category: [编程代码]
tags: [VC,源码]
<p>获取文件属性</p> <p>一、创建对话框应用程序</p> <p>二、编辑对话框资源</p> <!--more-->
<p align="center"> </p> <p>三、添加函数</p> <p align="center">
</p> <p>四、添加代码</p> <p>void CCFileDlg::OnCancel()
{
// TODO: Add extra cleanup here
CDialog::OnOK();
// CDialog::OnCancel();
}</p> <p>void CCFileDlg::OnOK()
{
// TODO: Add extra validation here
CString fileload;
CFileDialog file(TRUE,"文件",".",OFN_HIDEREADONLY,"FILE(.)|.||",NULL);
if(file.DoModal()==IDOK)
{
fileload=file.GetPathName();
CFileStatus filestatus;
CFile::GetStatus(fileload,filestatus); //获取文件信息
CTime createtime=filestatus.m_ctime;
CTime modifytime=filestatus.m_mtime;
CTime readtime=filestatus.m_atime;
CString filesize;
filesize.Format("%d",filestatus.m_size);
CString filename;
filename.Format("%s",filestatus.m_szFullName);
GetDlgItem(IDC_CREATE_TIME)->SetWindowText(createtime.Format("%Y年%m月%d日%H:%M:%S"));
GetDlgItem(IDC_REPAIRE_TIME)->SetWindowText(createtime.Format("%Y年%m月%d日%H:%M:%S"));
GetDlgItem(IDC_VISITE_TIME)->SetWindowText(createtime.Format("%Y年%m月%d日%H:%M:%S"));
GetDlgItem(IDC_FILESIZE)->SetWindowText(filesize);
GetDlgItem(IDC_FILENAME)->SetWindowText(filename);
}
// CDialog::OnOK();
}</p> <p>五、编译</p> <p>六、运行</p> <p align="center"> </p> <p>七、函数说明
1、CFile::GetStatus函数声明
BOOL GetStatus(LPCTSTR lpszFileName,CFileStatus& rStatus)
lpszFileName:字符串指针,放置文件路径。
rStatus:指向CFileStatus结构的对象,CFileStatus结构放置文件的各种属性
功能:获取文件信息。成功获取文件属性信息,返回TRUE;否则返回FALSE。
2、CFileStatus结构声明
struct CFileStatus
{
CTime m_ctime;
CTime m_mtime;
CTime m_atime;
LONG m_size;
BYTE m_attribute;
BYTE m_padding;
TRCHAR m_szFullName[_MAX_PATH];
}
m_ctime:文件创建时间。
m_mtime:文件最后修改时间。
m_atime:文件最近访问时间。
m_size:文件大小。
m_attribute:文件属性。
m_szFullName:文件的绝对路径。
功能:放置文件各种属性信息。
3、CFileDialog::GetPathName函数声明
CString GetPathName()const
功能:获取文件的绝对路径。</p>