打开文件对话框
//创建打开对话框
CFileDialog fileDlg(TRUE);//TRUE是打开,FALSE是保存
fileDlg.m_ofn.lpstrFilter = "HEX Files(*.hex)\0*.hex\0\0";//文件过滤器
if( IDOK == fileDlg.DoModal() )
{ //读取文件内容
CFile file( fileDlg.GetFileName(), CFile::modeRead );//获取文件名称并打开文件
DWORD dwFileLen = file.GetLength();//文件长度
char *pbHEXBuf = new char[dwFileLen];//开辟内存空间
file.Read( pbHEXBuf, dwFileLen );//读取文件
file.Close();//关闭文件
……//文件内容处理
delete[] pbHEXBuf;//释放内存空间
}
保存文件对话框
char *p = new char[0xFFFFFF];//开辟文件字符串空间,大小未知,所以尽量大一些
u32_t len=0;//文件字符串总长度
……//填充文件内容
//创建保存对话框
CFileDialog fileDlg(FALSE, "csv", "lpr_qy_import");//TRUE是打开,FALSE是保存
if( IDOK == fileDlg.DoModal() )
{ //保存文件
CFile file( fileDlg.GetFileName(), CFile::modeCreate|CFile::modeWrite );//获取文件名称并打开文件
file.Write( p, len );//写文件
file.Close();//关闭文件
}
delete[] p;//释放空间
知识点:
一、
CFileDialog fileDlg(FALSE, “csv”, “lpr_qy_import”);//创建文件对话框对象
第一个参数:TRUE是打开,FALSE是保存
第二个参数:文件扩展名,不带前边的点。有缺省值,为NULL。
第三个参数:文件名,不带点和后边的扩展名。有缺省值,为NULL。
第四个参数:特定风格。有缺省值。
第五个参数:过滤特性。有缺省值。
第六个参数:父窗口。有缺省值。
第二个第三个参数会改变对话框窗口的默认值,所以,一般在保存时用到。
二、
fileDlg.m_ofn.lpstrFilter = “CSV Files(.csv)\0.csv\0\0”;//对话框窗口文件类型过滤器
一般在打开时用到。因为文件夹中文件种类过多,不方便客户查找,过滤后只显示关注的类型。
“BIN Files(.bin)\0.bin\0TXT Files(.txt)\0.txt\0CSV Files(.csv)\0.csv\0\0”;//过滤三种文件类型
中间不能有空格,以两个\0结束。
三、
fileDlg.GetFileName();//获取文件名:文件名+扩展名:test1.txt
fileDlg.GetPathName();//获取文件名:路径+文件名+扩展名:c:\ test\ test1.txt
用这两个都行。