C++ 获取当前目录下的指定后缀文件

 获取指定目录下的所有指定格式文件,返回的列表将按照创建时间排序

注意:文件最早的在最前面

#include "shlwapi.h"
#pragma comment(lib,"shlwapi.lib")
#pragma comment(lib, "Version.lib ") 
#include <iostream>
#include <windows.h>
#include <algorithm>
#include <time.h>
#include <io.h>
#include <fstream>

struct tagFileInfo
{
	ULONG uLen;
	int nCreateTime;
	int nModifyTime;
	string strFileName;
};

// // 获取指定目录下的所有指定格式文件,返回的列表将按照创建时间排序,最早的在最前面
bool getDirFiles(string strDir, vector<tagFileInfo>& vecFiles,string strSuffixName)
{
	if (strDir.empty() || !isExistFile(strDir, true))
	{
		return false;
	}

	vecFiles.clear();
	string strPath = strDir + "*.*" + strSuffixName;

	// 文件信息
	struct _finddata_t _fileInfo;
	
	// 文件句柄
	intptr_t hFile = _findfirst(strPath.c_str(), &_fileInfo);
	if (-1 != hFile)
	{
		do
		{
			string strFileName = strDir + string(_fileInfo.name);
			if (isExistFile(strFileName))
			{
				tagFileInfo _tagInfo;
				_tagInfo.nCreateTime = static_cast<int>(_fileInfo.time_create);
				_tagInfo.nModifyTime = static_cast<int>(_fileInfo.time_write);
				_tagInfo.uLen = static_cast<int>(_fileInfo.size);
				_tagInfo.strFileName = strFileName;
				vecFiles.push_back(_tagInfo);
			}
		} while (0 == _findnext(hFile, &_fileInfo));
	}
	return true;
}

调用该函数示例:

#include <vector>

using namespace std;

string m_strDir = "XXX/XX/XX";//目标目录

vector<tagFileInfo> vecFiles;
getDirFiles(m_strDir, vecFiles, "log");
  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值