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

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

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

#include "shlwapi.h"
#pragma comment(lib,"shlwapi.lib")
#pragma comment(lib, "Version.lib ") 
#include 
#include 
#include 
#include 
#include 
#include 

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

// // 获取指定目录下的所有指定格式文件,返回的列表将按照创建时间排序,最早的在最前面
bool getDirFiles(string strDir, vector& 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(_fileInfo.time_create);
				_tagInfo.nModifyTime = static_cast(_fileInfo.time_write);
				_tagInfo.uLen = static_cast(_fileInfo.size);
				_tagInfo.strFileName = strFileName;
				vecFiles.push_back(_tagInfo);
			}
		} while (0 == _findnext(hFile, &_fileInfo));
	}
	return true;
}

调用该函数示例:

#include 

using namespace std;

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

vector vecFiles;
getDirFiles(m_strDir, vecFiles, "log");

你可能感兴趣的:(C/C++,c++,开发语言,获取当前目录下文件)