C++ 目录中文件查找

bool sort_finddata_tByTimeCreateUp(const _finddata_t& f1, const _finddata_t& f2)
{
	return f1.time_create < f2.time_create;
}

bool sort_finddata_tByTimeCreateDown(const _finddata_t& f1, const _finddata_t& f2)
{
	return f1.time_create > f2.time_create;
}


/*
	@ Description:
	--			文件夹中文件名查找获取 支持通配符
	@ Input Param:
	--			strFilespec 标明文件的字符串,可支持通配符。比如:*.c,则表示当前文件夹下的所有后缀为C的文件。
	--			bSortByTimeCreateUp == true 按时间排序 从小(久)到大(新) 反之从大(新)到小(久)
	bFindFile == true  仅查找文件, 文件夹/./../丢弃
	@ Output     :
	--			返回文件信息结构体列表
*/

list<_finddata_t> getFolderAllFileName(const string& strFilespec, const bool& bFindFile, const bool& bSortByTimeCreateUp)
{
	list<_finddata_t> listRet;

	struct _finddata_t fileInfo;//文件信息的结构体
	long handle = _findfirst(strFilespec.c_str(), &fileInfo);         //第一次查找
	if (-1 == handle) return listRet;

	if (!(bFindFile && fileInfo.size == 0))	listRet.push_back(fileInfo);

	while (!_findnext(handle, &fileInfo))//循环查找其他符合的文件,直到找不到其他的为止
	{
		if (bFindFile && fileInfo.size == 0) continue;

		listRet.push_back(fileInfo);
	}
	_findclose(handle);

	if (bSortByTimeCreateUp)
	{
		listRet.sort(sort_finddata_tByTimeCreateUp);
	}
	else
	{
		listRet.sort(sort_finddata_tByTimeCreateDown);
	}

	return listRet;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值