CfileDialog 文件对话框 mfc打开并读取txt文件
CfileDialog类的主要成员函数:
当DoModal返回IDOK,可以使用某一个CFileDIalog的公共成员函数获取用户输入的信息:
CString CFileDialog::GetPathName( ) 得到完整的文件名,包括目录名和扩展名如:c:/est/est1.txt
CString CFileDialog::GetFileName( ) 得到完整的文件名,包括扩展名如:test1.txt
CString CFileDialog::GetExtName( ) 得到完整的文件扩展名,如:txt
CString CFileDialog::GetFileTitle ( ) 得到完整的文件名,不包括目录名和扩展名如:test1
POSITION CFileDialog::GetStartPosition( ) 对于选择了多个文件的情况得到第一个文件位置。
CString CFileDialog::GetNextPathName( POSITION& pos ) 对于选择了多个文件的情况得到下一个文件位置,并同时返回当前文件名。但必须已经调用过POSITION CFileDialog::GetStartPosition( )来得到最初的POSITION变量。
代码:
void CReadTextDlg::OnButtonReadText()
{
// TODO: Add your control notification handler code here
CFileDialog *lpszOpenFile; //定义一个CfileDialog对象
CStdioFile file;
CString filePathName;
CString result;
//生成一个对话框
lpszOpenFile = new CFileDialog
(TRUE,"","",OFN_FILEMUSTEXIST |OFN_HIDEREADONLY , "文件类型(*.txt)|*.txt|所有文件(*.*)|*.*|");
if(lpszOpenFile->DoModal() == IDOK )//假如点击对话框确定按钮
{
filePathName = lpszOpenFile->GetPathName();//得到打开文件的路径
SetWindowText(filePathName);//在窗口标题上显示路径
}
if(filePathName == "") return;
if(!file.Open(filePathName,CFile::modeRead))
{
MessageBox("can not open file!");
return;
}
CString strLine,strTemp;
while(file.ReadString(strLine))
{
strLine.GetBufferSetLength(strLine.GetLength());
result +=strLine;
}
delete lpszOpenFile;//释放分配的对话框
m_strText = _T(result);
UpdateData(false);
}