[使用するメソッド]
BOOL GetStatus( CFileStatus& rStatus ); //CFileで開いているファイル情報
BOOL GetStatus( LPCTSTR lpszFileName, CFileStatus& rStatus );
[戻り値]
指定されたファイルのステータス情報を取得できた場合は、
TRUE を返します。失敗した場合は、FALSE を返します。
[CFileStatus 構造体]
| CTime m_ctime | ファイル作成日時 |
| CTime m_mtime | ファイル最終変更日時 |
| CTime m_atime | ファイル最終読み出しアクセス日時 |
| LONG m_size | DIR コマンドで出力されるファイルの論理サイズ |
| BYTE m_attribute | ファイルの属性バイト |
| char m_szFullName[_MAX_PATH] | Windows 文字セットでの絶対パスファイル名 |
| lpszFileName | 目的のファイルへのパスを保持する Windows 文字セットでの文字列を指定します。
相対パスまたは、絶対パスが指定できますが、ネットワーク名を持つことはできません。 |
m_attribute は、ファイル属性です。
MFC は、属性をシンボリックに示すために enum 型の属性を提供しています。
enum Attribute {
normal = 0x00,
readOnly = 0x01,
hidden = 0x02,
system = 0x04,
volume = 0x08,
directory = 0x10,
archive = 0x20
};
【サンプル・ソース】
void CGetfstatusDlg::OnButton1()
{
CFileStatus FStatus; //ファイルの情報
CString FPath; //ファイルのパス
CString strRet;
char buffer[128];
CString strBuf;
CEdit* myEdit1 = (CEdit*)GetDlgItem(IDC_EDIT1);
myEdit1->GetWindowText(FPath);
//---------------------------------------
//ファイル情報を取得する
CFile::GetStatus(FPath, FStatus);
//結果出力
ltoa(FStatus.m_size, buffer, 10);
strBuf = buffer;
strRet = "作成時間 : " + FStatus.m_ctime.Format("yyyy/mm/dd hh:ss") + "\n"
+ "最終アクセス時間 : " + FStatus.m_atime.Format("yyyy/mm/dd hh:ss") + "\n"
+ "最終更新時間 : " + FStatus.m_mtime.Format("yyyy/mm/dd hh:ss") + "\n"
+ "サイズ(byte) : " + strBuf;
AfxMessageBox(strRet);
}