理解MFC應用實例:獲取文件屬性
創(chuàng)建基于對話框的MFC應用程序在本示例中,我們創(chuàng)建一個名為FileAttribute的基于對話框的MFC應用程序。首先,在對話框中添加三個按鈕、一個編輯框、十一個靜態(tài)文本和四個復選框控件。 實現(xiàn)打開
創(chuàng)建基于對話框的MFC應用程序
在本示例中,我們創(chuàng)建一個名為FileAttribute的基于對話框的MFC應用程序。首先,在對話框中添加三個按鈕、一個編輯框、十一個靜態(tài)文本和四個復選框控件。
實現(xiàn)打開文件功能
為“打開”按鈕建立響應函數(shù)OnOpen(),在該函數(shù)中,我們使用MFC提供的CFileDialog類來實現(xiàn)文件選擇對話框功能。用戶可以通過打開對話框選擇要查看屬性的文件,然后將文件路徑顯示在編輯框中。
```cpp
void CFileAttributeDlg::OnOpen()
{
CString strFilter "All Files(*.*)|*.*||";
CFileDialog dlg(TRUE, NULL, NULL, OFN_EXPLORER | OFN_HIDEREADONLY | OFN_ENABLESIZING | OFN_FILEMUSTEXIST, strFilter);
if (() IDOK)
{
m_strFile ();
UpdateData(false);
}
}
```
獲取文件屬性信息
為“獲取屬性”按鈕建立響應函數(shù)OnGetAttr(),在該函數(shù)中,我們通過調(diào)用CFile::GetStatus()方法獲取所選文件的屬性信息,包括文件大小、創(chuàng)建時間、修改時間、訪問時間以及文件的只讀、隱藏、存檔、系統(tǒng)屬性等信息。最后將這些屬性信息顯示在對應的控件上。
```cpp
void CFileAttributeDlg::OnGetAttr()
{
UpdateData(TRUE);
CFileStatus rStatus;
if (CFile::GetStatus(m_strFile, rStatus))
{
m_("%d 字節(jié)", rStatus.m_size);
m_strCTime rStatus.m_("%Y年%m月%d日 %H:%M:%S");
m_strMTime rStatus.m_("%Y年%m月%d日 %H:%M:%S");
m_strATime rStatus.m_("%Y年%m月%d日 %H:%M:%S");
m_bReadOnly (rStatus.m_attribute 0x01) 0x01;
m_bHidden (rStatus.m_attribute 0x02) 0x02;
m_bArchive (rStatus.m_attribute 0x20) 0x20;
m_bSystem (rStatus.m_attribute 0x04) 0x04;
UpdateData(FALSE);
}
}
```
運行程序查看文件屬性
運行程序后,點擊“打開”按鈕選擇想要查看屬性的文件,例如桌面上的新建文本文件.txt。然后點擊“獲取屬性”按鈕,即可獲取并顯示該文件的大小、創(chuàng)建時間、修改時間、訪問時間,以及文件的只讀、隱藏、存檔、系統(tǒng)屬性信息。
通過以上操作,我們可以方便地獲取文件的各種屬性信息,幫助我們更好地管理和了解文件的內(nèi)容和狀態(tài)。