前言
- 各位师傅大家好,我是qmx_07,今天给大家讲解MFC中的文件类
MFC文件类
- 在MFC中,CFILE 是基本的文件操作类,提供了读取、写入、打开、关闭等操作方法
- 主要成员函数:Open(用于打开文件,设置模式 例如 只读 只写 读写)
- Read 和 Write(用于读取文件数据 和 写入文件数据)
- Close(打开文件,完成操作之后需要关闭文件)
- 绘图准备:
- Edit Control文本编辑框,设置文本靠右输出,只读,多行显示,具有垂直滚动条
- 设置四个Button按钮
- 双击 自动创建对应函数
- 文本编辑框需要添加变量,以便后续使用
读取文件内容
void CMFCApplication2Dlg::OnBnClickedButton1()
{
CFile File;
File.Open(L"G:\\test.txt",CFile::modeRead);
DWORD FileLength = File.GetLength();
char* Buffer = new char[FileLength + 1];
memset(Buffer, 0, FileLength + 1);
File.Read(Buffer, FileLength);
CString csBuffer;
csBuffer.Format(L"%S", Buffer);
m_Edit.SetWindowTextW(csBuffer);
File.Close();
}
- 获取文件内容,开辟空间,格式化输出到屏幕
文件准备:
画面演示:
写入文件
void CMFCApplication2Dlg::OnBnClickedButton2()
{
CFile File;
File.Open(L"G:\\test.txt", CFile::modeWrite);
char* WriteBuffer = "qmx_07";
File.Write(WriteBuffer, strlen(WriteBuffer));
File.Flush();
File.Close();
}
- 写入文件 记得要 刷新一下
画面演示:
显示文件夹内容
void CMFCApplication2Dlg::OnBnClickedButton3()
{
CString FileInfo;
CFileFind finder;
BOOL Ret = finder.FindFile(L"G:\\MFC_Demo\\*.*");
while (Ret)
{
Ret = finder.FindNextFileW();
CString strPath = finder.GetFilePath();
FileInfo += strPath += "\r\n";
}
m_Edit.SetWindowTextW(FileInfo);
}
- FindNextFileW函数 会返回布尔值,用于检索是否找到下一个文件,如果找到为True,否则为False,退出循环
环境准备:
画面演示:
查找文件
void CMFCApplication2Dlg::OnBnClickedButton3()
{
CString FileInfo;
CFileFind finder;
BOOL Ret = finder.FindFile(L"G:\\MFC_Demo\\*.*");
while (Ret)
{
Ret = finder.FindNextFileW();
CString strName = finder.GetFileName();
CString strPath = finder.GetFilePath();
FileInfo += strPath += "\r\n";
if (strName == "hello.txt")
{
AfxMessageBox(strName);
}
}
m_Edit.SetWindowTextW(FileInfo);
}
- 在查找文件夹的基础上,增加if匹配
- AfxMessageBox 可以弹出消息,但是此消息是模态
画面演示:
选择文件
void CMFCApplication2Dlg::OnBnClickedButton4()
{
CFileDialog File(TRUE, NULL, NULL, NULL, L"文件|*.txt|ALL Files|*.*||", this);
File.DoModal();
CString Path = File.GetPathName();
m_Edit.SetWindowTextW(Path);
}
- CFileDialog参数解释: 第一个参数,如果为True 代表打开文件对话框,如果为False为 保存文件对话框
- 这几个NULL分别表示初始目录、默认文件名和文件扩展名过滤器
- L"文件|.txt|ALL Files|.*||" 表示文件对话框 可以显示的文件类型
- this代表对话框的 父窗口
- 这段代码解释:通过设置文件选择,获取文件路径,输出到编辑框
画面演示:
总结
- 介绍了MFC文件类使用 读取文件,写入文件,显示文件夹内容,查找文件,以及创建文件选择对话框