找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 25|回复: 0

CFileDialog

[复制链接]

0

主题

0

回帖

26

积分

管理员

积分
26
发表于 2024-10-3 17:24:03 | 显示全部楼层 |阅读模式
  1.     // 打开一个txt
  2.     DWORD dwFlags = 0;//OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;
  3.     //一般  “文本文件*.txt|*.txt”为一组,最后加上 "||"
  4.     const TCHAR* filter = _T("文本文件*.txt|*.txt|word文档*.doc|*.doc|所有文件(*.*)|*.*||");
  5.     CFileDialog dlg(TRUE, _T("txt"), NULL, dwFlags, filter);
  6.     //打开对话框的标题
  7.     dlg.m_ofn.lpstrTitle = _T("自定义标题");
  8.     if (IDOK == dlg.DoModal())
  9.     {
  10.             //文件全路径  D:\test\a.txt
  11.         CString filepath = dlg.GetPathName();
  12.         //folder文件夹路径 D:\text
  13.         CString folder = dlg.GetFolderPath();
  14.         //文件--包括名+后缀   a.txt
  15.         CString filename = dlg.GetFileName();
  16.         //后缀名  txt
  17.         CString extname = dlg.GetFileExt();
  18.         //文件名  a
  19.         CString title = dlg.GetFileTitle();        
  20.     }
复制代码


过滤的语法
"Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||"
文件类型说明和扩展名间用 | 分隔,同种类型文件的扩展名间可以用 ; 分割,每种文件类型间用 | 分隔,末尾用 || 指明
文件保存
文件保存的几种方式:

选中一个txt文档,然后保存,会有替换的提示
输入一个名称,比如 a, 然后注意无后缀
输入一个名称,如 a.txt ,有后缀
  1.     //保存一个txt
  2.     DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;
  3.     const TCHAR* filter = _T("文本文件*.txt|*.txt||");
  4.     CFileDialog dlg(FALSE, _T("txt"), NULL, dwFlags, filter);
  5.     dlg.m_ofn.lpstrTitle = _T("自定义标题");
  6.     if (IDOK == dlg.DoModal())
  7.     {
  8.         CString filepath = dlg.GetPathName();
  9.         CString filename = dlg.GetFileName();
  10.         CString extname = dlg.GetFileExt();
  11.         CString title = dlg.GetFileTitle();
  12.         CString folder = dlg.GetFolderPath();
  13.     }
复制代码


新建文件
  1.     //新建文件
  2.     DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;
  3.     const TCHAR* filter = _T("文本文件*.txt|*.txt|json文件*.json|*.json||");
  4.     CFileDialog dlg(FALSE, NULL, NULL, dwFlags, filter);
  5.     dlg.m_ofn.lpstrTitle = _T("新建文件");
  6.     if (IDOK != dlg.DoModal())
  7.         return;
  8.     CString filepath = dlg.GetPathName();
  9.     CString filename = dlg.GetFileName();
  10.     CString extname = dlg.GetFileExt();
  11.     CString title = dlg.GetFileTitle();
  12.     CString folder = dlg.GetFolderPath();
  13.     //判断有没有输入后缀名
  14.     if (extname.IsEmpty())
  15.     {
  16.         //下拉框是哪一个 0--txt  1--json
  17.         DWORD filterIndex = dlg.m_ofn.nFilterIndex;
  18.         switch (filterIndex)
  19.         {
  20.         case 1:
  21.             extname = _T("txt");
  22.             filename += _T(".txt");
  23.             filepath += _T(".txt");
  24.             break;
  25.         case 2:
  26.             extname = _T("json");
  27.             filename += _T(".json");
  28.             filepath += _T(".json");
  29.             break;
  30.         default:
  31.             break;
  32.         }
  33.     }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|膜结构网

GMT+8, 2024-12-27 06:29 , Processed in 0.100387 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表