void CEx_FileDlg::OnButtonOpen()
{
// TODO: Add your control notification handler code here
CString filter;
filter = "文本文件(*.txt)|*.txt|C++文件(*.h,*.cpp)|*.h;*.cpp||";
CFileDialog dlg (TRUE, NULL, NULL, OFN_HIDEREADONLY, filter);
if (dlg.DoModal () != IDOK) return;
CString strFileName = dlg.GetPathName();
CFileStatus status;
if( !CFile::GetStatus( strFileName, status ) )
{
MessageBox("该文件不存在!");
return;
}
m_strTitle.Format( "%s [%s,%ld字节]", strFileName,
status.m_ctime.Format( "%Y-%m-%d" ), status.m_size );
UpdateData( FALSE );
// 打开文件,并读取数据
m_strContent.Empty();
CFile theFile;
if (!theFile.Open( strFileName, CFile::modeRead ))
{
MessageBox("该文件无法打开!");
return;
}
char szBuffer[80];
UINT nActual = 0;
while ( nActual = theFile.Read( szBuffer, sizeof( szBuffer ) ) )
{
CString str( szBuffer, nActual );
m_strContent = m_strContent + str;
}
theFile.Close();
UpdateData( FALSE );
}
void CEx_FileDlg::OnButtonOpen() // 定义函数
{
// TODO: Add your control notification handler code here
CString filter; // 定义string类型
filter = "文本文件(*.txt)|*.txt|C++文件(*.h,*.cpp)|*.h;*.cpp||"; // 注册限制条件
CFileDialog dlg (TRUE, NULL, NULL, OFN_HIDEREADONLY, filter);// 打开文件夹对话框
if (dlg.DoModal () != IDOK) return;
CString strFileName = dlg.GetPathName();// 获取路径
CFileStatus status;
if( !CFile::GetStatus( strFileName, status ) ) // 获取文件状态
{
MessageBox("该文件不存在!"); // 如果没有 则提示框 文件不存在
return;
}
m_strTitle.Format( "%s [%s,%ld字节]", strFileName, // 字符串格式化
status.m_ctime.Format( "%Y-%m-%d" ), status.m_size );
UpdateData( FALSE );
// 打开文件,并读取数据
m_strContent.Empty();
CFile theFile;
if (!theFile.Open( strFileName, CFile::modeRead ))
{
MessageBox("该文件无法打开!");
return;
}
char szBuffer[80];
UINT nActual = 0;
// 这里是读取文件
while ( nActual = theFile.Read( szBuffer, sizeof( szBuffer ) ) )
{
CString str( szBuffer, nActual );
m_strContent = m_strContent + str;
}
theFile.Close();
UpdateData( FALSE );
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632