通过filedialog如何得到文件名 c:\\1.txt

wang_bluebird 2004-10-22 07:30:14
?
...全文
309 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wang_bluebird 2004-10-22
  • 打赏
  • 举报
回复
如何得到文件名为
C:\\FOO.DAT
wang_bluebird 2004-10-22
  • 打赏
  • 举报
回复
我想得到c:\\1.txt
而dlg.GetPathName()得到的是c:\1.txt
pomelowu 2004-10-22
  • 打赏
  • 举报
回复
CFileDialog dlg(TRUE,"",NULL,
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
szFilter);
if (dlg.DoModal() == IDOK)
{
CString szFileName = dlg.GetFileName();
}


szFileName就是你要的东西
alon21 2004-10-22
  • 打赏
  • 举报
回复
//CFileDialog的使用
例:
先在使用文件对话框的类的类定义文件中加入对象定义CFileDialog m_MyOpenDialog(TRUE,"avi","*.avi");

随后,在需要使用该对话框的地方加入以下语句:
m_MyOpenDialog.Domodal();
就可以预览所有.avi文件.


其调用规则为:
函数原型:
CFileDialog(BOOL bOpenFileDialog,LPCTSTR lpszDefExt=NULL,LPCTSTR lpszFileName=NULL,DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPR OMPT,LPCTSTR lpszFilter=NULL,CWnd * pParentWnd
=NULL);
参数说明:
bOpenFileDialog:为TRUE或FALSE。TRUE为打开文件;FALSE为保存文件。
lpszDefExt :为缺省的扩展名。
lpszFileName :为显示在文件名组合框的编辑框的文件名,一般可选NULL
dwFlags :为对话框风格,一般为OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,即隐藏只读选项和覆盖已有文件前提示。
LpszFilter :为下拉列表枢中显示文件类型。
pParentWnd :一般可选NULL。
例如:在文件类型列表框的编辑框要显示“可执行文件(*.exe)”,而在它的下拉列表框中列出“视频文件(*.avi)、All Files(*.*)”内容,则变量定义如下:CFileDialog m_MyOpenDialog(TRUE,"exe",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"可执行文件(*.exe) | *.exe|视频文件(*.bat) | *.bat |All Files (*.*) | *.* ||",NULL);

注:没有*.*后的||显示时会多出一个空行.


成员函数:
CFileDialog::GetPathName //得到带路径的文件名
CFileDialog::GetFileName //得到文件名
CFileDialog::GetFileExt //得到扩展名
CFileDialog::GetFileTitle //得到不带扩展名的文件名



例:
void CDemoDlg::OnSave()
{
CFileDialog fd(FALSE,"exe",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"可执行文件(*.exe) | *.exe|视频文件(*.dat) | *.dat |All Files (*.*) | *.* ||",NULL);
if(fd.DoModal()==IDOK)
{
CFile f;
f.SetFilePath(fd.GetPathName());
CString str;
str.Format("The Path is %s .",f.GetFileName());
MessageBox((LPCTSTR)str);
f.Open((LPCTSTR)f.GetFileName(),CFile::modeCreate|CFile::modeReadWrite);

f.Close();
}


}

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧