版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
void Ctest0919Dlg::OnBnClickedBtnOpenfile()
{
CString szFilters = "Files Type(*.txt)|*.txt|All Files (*.*)|*.*||";//用于指定对话框过滤的文件类型
CFileDialog fileDlg(TRUE, "Open file", "*.txt", OFN_FILEMUSTEXIST | OFN_HIDEREADONLY, szFilters, this);
if (fileDlg.DoModal()==IDOK)//常用函数DoModal用于显示"文件"对话框,供用户选择文件
{
//常用函数GetPathName用于返回用户选择文件的完整路径名称,
//包括文件的路径,文件名和文件扩展名
m_strFilePath = fileDlg.GetPathName();
UpdateData(false);
}
}
void Ctest0919Dlg::OnBnClickedBtnReadfile()
{
if (m_strFilePath.IsEmpty()) return;
if (m_pfile)
{
delete m_pfile;
return;
}
m_strFileContent = "";
//定义一个新的文件变量m_pfile,CFile::modeRead以只读方式打开文件
m_pfile = new CStdioFile(m_strFilePath, CFile::modeRead);
CString str;
//CStidoFile提供了函数Readstring来读取文本
while (m_pfile->ReadString(str))
{
m_strFileContent += str+"\r\n";
}
UpdateData(false);
m_pfile->Close();
delete m_pfile;
m_pfile = nullptr;
}
void Ctest0919Dlg::OnDestroy()
{
CDialogEx::OnDestroy();
if (m_pfile)
delete m_pfile;
}
void Ctest0919Dlg::OnBnClickedBtnSavefile()
{
CString szFilters = "Files Type(*.txt)|*.txt||";
CFileDialog fileDlg(FALSE, nullptr, nullptr, OFN_EXPLORER | OFN_HIDEREADONLY, szFilters);
if (fileDlg.DoModal()==IDOK)
{
//GetFileName用于返回用户选择的文件名称,包括文件名和扩展名,但不包含路径
CString filePath= fileDlg.GetFileName();
//CFile::modeCreate若打开文件不存在则创建一个新文件,如果该文件存在,则清空它的数据。
//CFile::modeWrite 打开文件用于写入数据
CFile saveFile(filePath, CFile::modeCreate | CFile::modeWrite);
saveFile.Write(m_strFileContent.GetBuffer(0), m_strFileContent.GetLength());
saveFile.Close();
return;
}
}
void Ctest0919Dlg::OnBnClickedBtnClrar()
{
if (m_strFileContent.IsEmpty())
return;
m_strFileContent = "";
UpdateData(false);
}