一、获取文件路径
// TODO: 在此添加控件通知处理程序代码
CFileDialog fileDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
_T("Text Files(*.txt)|*.txt|WinRar Files(*.rar)|*.rar|Data Files(*.xlc;*.xls)|*.xlc;*.xls|All Files(*.*)|*.*||"));
if (fileDlg.DoModal() == IDOK)
{
//SetDlgItemText(IDC_EDIT1, fileDlg.GetPathName());//返回文件的全路径
//SetDlgItemText(IDC_EDIT1, fileDlg.GetFileExt());//返回文件的扩展名
//SetDlgItemText(IDC_EDIT1, fileDlg.GetFileName());//返回文件名
SetDlgItemText(IDC_EDIT1, fileDlg.GetFolderPath()); //获取文件所在的文件夹路径
}
初始化路径
// TODO: 在此添加控件通知处理程序代码
CFileDialog fileDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
_T("Text Files(*.txt)|*.txt|WinRar Files(*.rar)|*.rar|Data Files(*.xlc;*.xls)|*.xlc;*.xls|All Files(*.*)|*.*||"));
fileDlg.m_ofn.lpstrInitialDir = _T("D:\\"); //初始化路径
if (fileDlg.DoModal() == IDOK)
{
//SetDlgItemText(IDC_EDIT1, fileDlg.GetPathName());//返回文件的全路径
//SetDlgItemText(IDC_EDIT1, fileDlg.GetFileExt());//返回文件的扩展名
//SetDlgItemText(IDC_EDIT1, fileDlg.GetFileName());//返回文件名
SetDlgItemText(IDC_EDIT1, fileDlg.GetFolderPath()); //获取文件所在的文件夹路径
}
二、获取文件夹路径
三、文件保存
// TODO: 在此添加控件通知处理程序代码
CFileDialog fileDlg(FALSE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
_T("Text Files(*.txt)|*.txt|WinRar Files(*.rar)|*.rar|Data Files(*.xlc;*.xls)|*.xlc;*.xls|All Files(*.*)|*.*||"));
if (fileDlg.DoModal() == IDOK)
{
SetDlgItemText(IDC_EDIT1, fileDlg.GetPathName());//返回文件的全路径
}
四、选择多文件
// TODO: 在此添加控件通知处理程序代码
const int MAX_NUMBER = 200; //文件最大数量
CFileDialog fileDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT,
_T("Text Files(*.txt)|*.txt|WinRar Files(*.rar)|*.rar|Data Files(*.xlc;*.xls)|*.xlc;*.xls|All Files(*.*)|*.*||"));
fileDlg.m_ofn.lpstrFile = new TCHAR[MAX_PATH*MAX_NUMBER]; //申请缓冲区的大小
ZeroMemory(fileDlg.m_ofn.lpstrFile, MAX_PATH*MAX_NUMBER); //初始化缓冲区
fileDlg.m_ofn.nMaxFile = MAX_PATH * MAX_NUMBER;
if (fileDlg.DoModal() == IDOK)
{
POSITION position = fileDlg.GetStartPosition();
while (position != NULL)
{
CString path = fileDlg.GetNextPathName(position);
MessageBox(path);
}
}
delete[] fileDlg.m_ofn.lpstrFile; //释放内存