1.枚举所有文件夹(递归)

void EnumerateFolders ()
{WIN32_FIND_DATA fd;HANDLE hFind = ::FindFirstFile (_T ("*.*"), &fd);if (hFind != INVALID_HANDLE_VALUE) {do {if (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {CString name = fd.cFileName;if (name != _T (".") && name != _T ("..")) {TRACE (_T ("%s\n"), fd.cFileName);::SetCurrentDirectory (fd.cFileName);EnumerateFolders ();::SetCurrentDirectory (_T (".."));}}} while (::FindNextFile (hFind, &fd));::FindClose (hFind);}
}//比如说枚举E:\svn文件夹,不过可能会导致栈溢出::SetCurrentDirectory(_T("e:\\svn"));EnumerateFolders();

 2.串行化类(版本控制http://www.vckbase.com/index.php/wv/1097)

class MyLine:public CObject
{DECLARE_SERIAL(MyLine);
public:MyLine(){};MyLine(CPoint from,CPoint to){m_ptFrom=from;m_ptTo=to;}void Serialize(CArchive &ar);
protected:CPoint m_ptFrom;CPoint m_ptTo;
};IMPLEMENT_SERIAL(MyLine,CObject,1);
void MyLine::Serialize(CArchive &ar){if(ar.IsLoading()){ar<<m_ptFrom<<m_ptTo;}else{ar>>m_ptFrom>>m_ptTo;}
}

下面是串行化输入输出demo:

void CMainWindow::OnFileWrite()
{// TODO: 在此添加命令处理程序代码CFile file(_T("abc.txt"),CFile::modeCreate|CFile::modeWrite);CArchive ar(&file,CArchive::store);int i=10;float f=1.3f;char ch='c';CString str=_T("abc");ar<<i<<f<<ch<<str;
}void CMainWindow::OnFileRead()
{// TODO: 在此添加命令处理程序代码CFile file(_T("abc.txt"),CFile::modeRead);CArchive ar(&file,CArchive::load);int i;float f;char ch;CString str;CString strResult;ar>>i>>f>>ch>>str;   //必须按顺序输出,也就是说存入的数据保持着原有的类型strResult.Format(_T("%d,%f,%c,%s"),i,f,ch,str);AfxMessageBox(strResult);
}

转载于:https://www.cnblogs.com/duyy/p/3786165.html

MFC 文件I/O和串行化相关推荐

  1. 孙鑫MFC笔记之八--文档串行化

    1.CArchive在菜单打开保存时的代码 CFile file("1.txt",CFile::modeCreate | CFile::modeWrite); CArchive a ...

  2. php 串行化数据,php中对象的串行化

    我们大家有知道PHP串行化可以把变量包括对象,转化成连续bytes数据,你可以将串行化后的变量存在一个文件里或在网络上传输,然后再反串行化还原为原来的数据.文章这里就PHP串行化为大家详细的介绍.你在 ...

  3. MFC Windows程序设计学习笔记--文件和串行化

    文件IO主要为了 支持文档的存储和加载. 多数MFC程序用CArchive对象实现磁盘文档的存储和加载. 1.CFile: m_hFile 保存着与CFile相关联的文件的句柄. m_strFileN ...

  4. MFC六大核心机制之四:永久保存(串行化)

    永久保存(串行化)是MFC的重要内容,可以用一句简明直白的话来形容其重要性:弄懂它以后,你就越来越像个程序员了! 如果我们的程序不需要永久保存,那几乎可以肯定是一个小玩儿.那怕我们的记事本.画图等小程 ...

  5. MFC(文档和串行化,孙鑫C++第十三讲笔记整理) .

    转自:http://blog.csdn.net/zh634455283/article/details/7882897 1.CArchive在菜单打开保存时的代码  CFile file(" ...

  6. VC++ 串行化编程实例

    Win10 + VC6: 首先新建一个单文档工程,名为ardemo1: 增加写文件.读文件菜单:菜单ID自动生成:自己改也可以: 在 写文件 菜单,右击,选择 建立类向导: 在类向导中,类名选中Vie ...

  7. Visual C++ 时尚编程百例019(串行化)

    串行化 串行化的基本思想是一个类对象,能够将它记录在成员变量中的当前状态存储, 也可以通过串行化的读取恢复操作重新创建对象. 使一个类可串行化,在类声明中使用DECLARE_DYNCREATE(CMy ...

  8. 在asp.net2.0中使用串行化对象实现自定义配置

    在一次升级一个entlib1.0到entlib的高版本程序时,碰到entlib的一个通过XmlSerializer方式实现的自定义配置.而在entlib的高版本中这样的配置不再被支持.可是又不希望修改 ...

  9. 利用XMLSerializer将对象串行化到XML

    微软已经意识到串行化数据的重要性,因此在.NET框架中包含了命名空间System.Runtime.Serialization和System.Xml.Serialization以提供串行化功能,为用户自 ...

最新文章

  1. JGG:中大骆观正组开发微量样品m(6)A测序新技术
  2. dede 会员中心编辑添加和修改图集的时候自定义的字段模型显示不出来的问题...
  3. 查看oracle中path,查看oracle进程启动时的环境变量
  4. 春天:注入列表,地图,可选对象和getBeansOfType()陷阱
  5. JavaScript中eval()函数
  6. Linux内存管理 -- smaps讲解
  7. kafka是什么_Kafka凭什么速度那么快?
  8. 深山红叶PE工具箱嫦娥一号纪念版
  9. Linux服务器jps报process information unavailable
  10. SG平滑轨迹算法的原理和实现
  11. 学习笔记(04):程序员的数学:微积分-常用导数(一):最常用到的技巧
  12. 客户价值模型:RFM
  13. Spring-IoC注解
  14. 无线web认证计费服务器,WEB认证原理
  15. 面试前紧急补货——网络
  16. make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1
  17. 弹窗广告关不掉?工信部:用这个方法举报!
  18. Verilog学习笔记——04——补码转换器、七段译码器
  19. 阿里云SaaS生态战略发布:成就亿级营收独角兽
  20. OneDrive两台电脑之间文件同步操作

热门文章

  1. java 对象和类
  2. linux 安装nodejs8,CentOS 安装NodeJS V8.0.0的方法
  3. linux进程及作业管理实验,Linux 进程及作业管理(一)
  4. 表达、思考和解决问题的逻辑(金字塔原理-高质量读书笔记)
  5. VMware vSphere 文档--总目录vSphere 5.5 6.0 6.5 6.7 7.0
  6. Docker学习总结(47)——温故Docker常用命令行
  7. python文字转图片_技能:如何使用Python将文本转为图片
  8. Spring Cloud Bus之RabbitMQ初窥
  9. 六条“黑客伦理”(hacker ethic)
  10. ES6新特性2:变量的解构赋值