由CFileFind写的File Iterator

下载源代码

文件遍历是一个比较常用的功能,VC++中文件遍历一般使用CFileFind类,该类封装的接口是比较好用的,但用多了 之后,你会发现写了很多重复的代码,比如判断IsDot啊,判断FindNext的返回值啊等等,另外对于碰到目录的情况,还需要递归 遍历,这也会写一些重复的代码。设计模式中有一种叫Iterator,我们就在这篇文章中用Iterator模式对文件遍历进行封装。

接口:我们打算实现以下几个共有接口:

//初始化遍历变量 bool begin(string directory);

//移动到下一个文件 bool next();

//当前的文件的全路径名 string file_all_path_name();

//当前路径名 string file_name();

工作原理:该类的工作原理是比较简单的,核心功能是CFileFind实现了的,首先由begin函数初始化所有变量,并查找第一层目录,由next函数顺序移动文件的访问位置,对应CFileFind的FindNext函数,当一个目录遍历完毕,由next_directory移动到下一个目录,继续遍历。

使用方法: 有了CTHDDFileIterator后,遍历目录就相对简单了很多,下面是使用时候的代码,只要简单的几行,如下:

CTHDDFileIterator iter;

if(iter.begin(_T("C://test"))){//遍历C:/test目录

   while (iter.next()){

       m_lstFiles.AddString(iter.file_name().c_str());

  }

}

更多文章可参考http://www.thirddata.com/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值