CFileDialog这个类用来选择文件不错,不过针对多选,默认的最大选择文件数量有限,它的最大字符串缓冲大小仅有260,这时候需要对它的数据成员m_ofn进理处理,如下代码所示:

    DWORD nFileNumbers = 500;    //CFileDialog最大选择文件数量
CFileDialog fileDlg(TRUE,_T("txt"), _T("*.txt"),OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_ALLOWMULTISELECT,TEXT("文件 (*.txt)|*.txt|All Files (*.*)|*.*||"),this);POSITION pos = 0;CString strFile;TCHAR *pBufOld = fileDlg.m_ofn.lpstrFile;    //保存旧的指针DWORD dwMaxOld = fileDlg.m_ofn.nMaxFile;    //保存旧的数量fileDlg.m_ofn.lpstrFile = new TCHAR[ nFileNumbers * MAX_PATH];ZeroMemory(fileDlg.m_ofn.lpstrFile,sizeof(TCHAR) * nFileNumbers * MAX_PATH);fileDlg.m_ofn.nMaxFile = nFileNumbers * MAX_PATH;    //此最大数,按MSDN解释为fileDlg.m_ofn.lpstrFile指向的缓冲的最大字符数//默认是260    if (IDOK != fileDlg.DoModal()) goto EXIT_OnBnClickedCreateBatch;pos = fileDlg.GetStartPosition();while (pos){strFile = fileDlg.GetNextPathName(pos);CreateLicFileByEachHardcode(mapLicInfo,strFile);}
EXIT_OnBnClickedCreateBatch:delete [](fileDlg.m_ofn.lpstrFile);        //清除堆内存fileDlg.m_ofn.lpstrFile = pBufOld;        //还原之前的指针,因为没有深入过CFileDialog源码分析,不清这个是否必须的,还是先还原上吧,                           //说不定CFileDialog析构的时候要用上    fileDlg.m_ofn.nMaxFile = dwMaxOld;        //还原之前的最大数

转载于:https://www.cnblogs.com/guobbs/p/3867622.html

CFileDialog多选文件的最大数量相关推荐

  1. python读取大文件目录_Python读取系统文件夹内所有文件并统计数量的方法

    大家先看一下Python os模块中的部分函数 python 路径相关的函数 os.listdir(dirname):列出dirname下的目录和文件 os.getcwd():获得当前工作目录 os. ...

  2. 再次分享一个多选文件上传方案“.NET研究”

    多选文件上传,已经非常多了,选择性多了可能有时候要比较下哪个更合适,结合到项目中使用更方便才是最重要的.很多的多选上传基本上都是调用的swf文件,确实用flash 或flex开发一个多选上传的功能很方 ...

  3. 查看系统各个进程打开的文件描述符数量

    lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr 结果是以 打开的文件描述符数量:进程号  的格式排序的 .降序排序 转载于:https://blog. ...

  4. Linux:如何获取打开文件和文件描述符数量

    一.linux的文件描述符 文件描述符(FD:file descriptors),也可以说是文件句柄,当某个程序打开文件时,内核返回相应的文件描述符,程序为了处理该文件必须引用此描述符.文件描述符是一 ...

  5. Kettle使用_11 CSV文件输入输出复制数量

    Kettle使用_11 CSV文件输入输出复制数量 需求: 通过并行方式完成customers-100.txt(该文件有2.4万条记录)的文本输出. 解决方法:结合CSV文本输入和文件文本输出组件解决 ...

  6. 再次分享一个多选文件上传方案

    多选文件上传,已经非常多了,选择性多了可能有时候要比较下哪个更合适,结合到项目中使用更方便才是最重要的.很多的多选上传基本上都是调用的swf文件,确实用flash 或flex开发一个多选上传的功能很方 ...

  7. shell统计指定目录下所有文件类型及数量

    #!/bin/bash #Synopsis:用于统计脚本当前所在目录或者用户指定目录下的所有文件类型及数量 #若直接运行脚本而不接任何命令行参数,则默认会统计脚本所在目录下的文件 #Date:2016 ...

  8. jquery复选框组清空选中的值_jQuery获取复选框被选中数量及判断选择值的方法详解...

    这篇文章主要介绍了jQuery获取复选框被选中数量及判断选择值的方法,结合实例形式分析了jQuery操作复选框进行判定与统计的相关技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了jQuer ...

  9. svn中commit如何全选文件

    每次svn提交文件选择文件都是一个个的选择,今天又300多个文件,若是一个一个的选择,我得选到天黑了,先是手动一个一个的选择了100多个,剩下的实在选择不下去了,太浪费时间了,然后网上查找如何全选文件 ...

  10. 使用SVN的commit上传如何全选文件

    使用SVN的commit上传如何全选文件 commit文件太多,全选在文件上面一栏,见下图 不要一个个点啦!

最新文章

  1. 可视化调试工具gdb-dashboard
  2. 主键策略UUID升级
  3. 浅谈CSS3中display属性的Flex布局,关于登陆页面属性框的设置
  4. 通俗易懂的Redis数据结构基础教程
  5. Web Deployment Projects with Visual Studio 2005
  6. javase开发工具包中的什么命令负责运行应用程序_JavaSE之编程概述
  7. python主进程 子进程_pool主进程捕获子进程异常
  8. 都说不要装箱,那装箱到底带来了什么开销?
  9. ecshop清除mysql缓存_ECSHOP缓存清理关闭教程
  10. 融合时代 存储迎来无限可能
  11. win32 api for .net
  12. android activity 主题,android activity 主题
  13. linux 远程修改时间,linux 获取远程系统时间的例子
  14. Oracle 分组求和(特殊处理)
  15. 注册表被禁用了怎么办?
  16. 一名优秀的测试工程师需要具备哪些技能?
  17. Ansible mysql_db模块
  18. linux安装xp系统安装教程视频教程,Linux系统怎么安装Win7?Linux下安装XP/WIN7系统图文详细教程...
  19. 【玩转华为云】手把手教你利用ModelArts实现垃圾自动分类
  20. End-to-End Knowledge-Routed Relational Dialogue System for Automatic Diagnosis翻译

热门文章

  1. 【Django 2021年最新版教程30】django项目部署到华为云(nginx uWSGI mysql方式)
  2. 漂亮的thinkphp 跳转页封装
  3. mysql进程多_MySQL进程列表的进程太多。正常吗?
  4. 采样次数不同平均值不一样_认知的不同,才有不一样的人生
  5. ccfcsp化学方程式java_化学方程式-ccf
  6. 微信小程序支付封装-复制即用
  7. php 面向对象编程(class)之从入门到崩溃 高级篇
  8. 前缀和(树状数组)构造桶数组的用法
  9. Spring Boot 整合 Kafka 分布式消息系统快速入门
  10. 微服务网关(gateway)概述 与 嵌入式 Zuul 反向代理