CFile::GetStatus

此方法检索状态信息与特定 CFile 对象实例或特定文件路径相关。

BOOL GetStatus(
   CFileStatus& rStatus 
) const;
static BOOL PASCAL GetStatus(
   LPCTSTR lpszFileName,
   CFileStatus& rStatus,
   CAtlTransactionManager* pTM = NULL
);

参数

  • rStatus
    要获取状态信息的一个用户提供的 CFileStatus 结构的引用。 CFileStatus 结构具有下列字段:

    • CTime m_ctime 文件创建日期和时间。

    • CTime m_mtime 日期和时间文件的上次更新。

    • CTime m_atime 文件用于读取最后访问的日期和时间。

    • ULONGLONG m_size 文件的逻辑大小(以字节为单位),如报告DIR命令。

    • BYTE m_attribute 文件的属性字节。

    • char m_szFullName[_MAX_PATH] 在Windows字符集的绝对文件名。

  • lpszFileName
    在路径所需文件的Windows字符集的字符串。 路径可以是相对路径或绝对的,也可以包含网络路径名。

  • pTM
    为CAtlTransactionManager对象的指针

返回值

TRUE,如果指定的文件的状态信息成功获取;否则,FALSE

备注

GetStatus 的非静态版本检索打开文件的状态信息与特定 CFile 对象。 GetStatus 的静态版本获取从特定文件路径的文件状态,而不会实际打开文件。 这将用于测试文件是否存在以及访问权限很有用。

CFileStatus 结构的 m_attribute 成员引用设置的文件属性。 CFile 选件类提供 Attribute 枚举类型,因此文件属性可以指定标记:

enum Attribute {

normal = 0x00,

readOnly = 0x01,

hidden = 0x02,

system = 0x04,

volume = 0x08,

directory = 0x10,

archive = 0x20

};

示例

CFile cfile;
cfile.Open(_T("SetLength_File.dat"), CFile::modeCreate |
   CFile::modeReadWrite);
ULONGLONG dwNewLength = 10000;
cfile.SetLength(dwNewLength);
CFileStatus status;
if(cfile.GetStatus(status))    // virtual member function
{
   TRACE(_T("File size = %u\n"), status.m_size);
}
TCHAR* pszFileName = _T("SetLength_File.dat");
if(CFile::GetStatus(pszFileName, status))   // static function
{
   TRACE(_T("Full file name = %s\n"), status.m_szFullName);
}

要求

Header: afx.h

请参见

参考

C文件选件类

层次结构图

CFile::SetStatus

CTime选件类