CFileDialog 多文件选择

Posted www

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CFileDialog 多文件选择相关的知识,希望对你有一定的参考价值。

CString pathName = _T("");
CString fileName = _T("");
CString strMulfilepath = _T("");

//创建一个可以选择多个文件的CFileDialog
CFileDialog fileDlg(true,NULL,_T("*.*"),OFN_ALLOWMULTISELECT | OFN_ENABLESIZING | OFN_HIDEREADONLY,_T("All Files (*.*)|*.*||"));

m_filepath.clear();
//最多可以打开500个文件
fileDlg.m_ofn.nMaxFile = 500 * MAX_PATH;

TCHAR* ch = new TCHAR[fileDlg.m_ofn.nMaxFile];
fileDlg.m_ofn.lpstrFile = ch;

//对内存块清零
ZeroMemory(fileDlg.m_ofn.lpstrFile,sizeof(TCHAR) * fileDlg.m_ofn.nMaxFile);

//显示文件对话框,获得文件名集合
if(fileDlg.DoModal() == IDOK){

//获取第一个文件的位置
POSITION pos_file;
pos_file = fileDlg.GetStartPosition();

//循环读出每个路径并存放在数组中
while(pos_file != NULL){

//将文件路径存放在数组中
pathName = fileDlg.GetNextPathName(pos_file);

int len =WideCharToMultiByte(CP_ACP,0,pathName,-1,NULL,0,NULL,NULL);
char *cfname =new char[len +1];
WideCharToMultiByte(CP_ACP,0,pathName,-1,cfname,len,NULL,NULL );

//ary_filename.Add(pathName);
m_filepath.push_back(cfname);

strMulfilepath += pathName;
}
}

SetDlgItemText(IDC_EDIT1, strMulfilepath);
delete[] ch;

以上是关于CFileDialog 多文件选择的主要内容,如果未能解决你的问题,请参考以下文章

使用 CFileDialog 选择文件时的绘画问题

如何在 MFC 中使用 CfileDialog 选择特定文件

MFC CFileDialog 只打开选择文件

MFC中CFileDialog使用方法

VC6.0中CFileDialog怎么选择多个文件?

怎么用CFileDialog 选择文件夹