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);
}
必要条件
**ヘッダー:**afx.h