CFile::GetStatus

BOOL GetStatus(CFileStatus& rStatus)const;
static BOOL PASCAL GetStatus(LPCSTR lpszFileName, CFileStatus& rStatus);

返回值:如果指定文件的状态信息成功获取,则为TRUE,否则为FALSE。

参数:
rStatus用户提供的CFileStatus结构的参考,用来接收状态信息。CFileStatus结构有以下字段:
CTime m_ctime文件创建的时间。
CTime m_mtime文件最后一次修改的时间。
CTime m_atime最后一次访问文件并读取的时间。
LONG  m_size文件逻辑长度,以字节数表示,如同DIR命令报告的那样。
BYTE  m_attribute文件属性字节。
Char  m_szFullName[_MAX_PATH]Windows字符集表示的全文件名。

lpszFileNameWindows字符集表示的文件路径,此路径可为绝对的或为相对的,但不包含网络名。

说明:
GetStatus的虚拟版本获取与CFile对象有关的文件的状态,不把值插入到m_szFullName结构成员中。
静态版本获取文件状态并把文件名拷入m_szFullName。此函数从文件目录入口获取文件状态而不打开文件,这对于测试已存在和访问权限十分有用。
m_attribute是文件属性,MFC提供一个enum类型的属性,这样就可以用符号指定属性:
enum Attribute
{
  normal    = 0x00,
  readOnly  = 0x01,
  hidden    = 0x02,
  system    = 0x04,
  volume    = 0x08,
  directory = 0x10,
  archive   = 0x20
};

示例:
// example for CFile::GetStatus
CFileStatus status;
Extern CFile cfile;
If(cfile.GetStatus(status)) // virtual member function
{
  #ifdef _DEBUG
     afxDump<<"File size ="<<status.m_size<<"\n";
  #endif
}

char* pFileName ="test.dat";

if(CFile::GetStatus(pFileName,status)) // status function
{
  #ifdef  _DEBUG
     afxDump<<"Full File name ="<<status.m_szFullName <<"\n";
  #endif
}

请参阅:CFile::SetStatus, CTime