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