admin 发表于 2024-7-26 08:25:24

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");





页: [1]
查看完整版本: C++ 获取当前目录下的指定后缀文件