请问一个关于文件名过滤的问题~

dc128 2003-10-09 11:22:13
有L71121037_03820021015_B61.FST和L71121037_03820021015_HTM.FST这样2个文件,用CFILEDIALOG选择文件的时候,想根据文件中的有无H将L71121037_03820021015_B61.FST过滤掉,不出现在待选的文件中,应该怎么做呢?请教各位了~,多谢~
...全文
67 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dc128 2003-11-02
  • 打赏
  • 举报
回复
求助~~
dc128 2003-10-11
  • 打赏
  • 举报
回复
awant2k(一点通)的方法不太明白~,能否讲的详细点~多谢
blue2moon 2003-10-10
  • 打赏
  • 举报
回复
建议还时采用awant2k(一点通)的方法吧
AkiraChing 2003-10-10
  • 打赏
  • 举报
回复
这里有篇知识库文章,对你有所帮助吧
http://support.microsoft.com/default.aspx?scid=kb;en-us;200421
dc128 2003-10-09
  • 打赏
  • 举报
回复
多谢讲这么详细~,不过你理解错我的意思了,文件的扩展名是一样的,都是.fst,我想根据文件名(不带扩展名)的倒数第3个字母,如果不是H,就把这个文件过滤掉,是H的话就出现在待选的文件中,请问该如何做呢~
awant2k 2003-10-09
  • 打赏
  • 举报
回复
重载 OnLBSelChangedNotify, 判断 选取的文件是否 合法 后再 处理
alon21 2003-10-09
  • 打赏
  • 举报
回复
//CFileDialog的使用
//Alon
例:
先在使用文件对话框的类的类定义文件中加入对象定义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,467

社区成员

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

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

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