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 получает состояние файла из заданного виртуального пути к файлу без открытия файла.Это полезно для проверки существования и права доступа к файлу.
Элемент m_attribute структуры CFileStatus относится к набору атрибутов файла.Класс CFile предоставляет тип перечисления Атрибут поэтому можно символически указать атрибуты файла.
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