当前位置: 首页 > news >正文

C++批量读取指定后缀文件

目录

  • 核心功能说明
  • 批量读取代码

在这里插入图片描述

博客长期更新,本文最新更新时间为:2025年6月14日。

核心功能说明

  1. 文件遍历机制

    • _findfirst():启动文件搜索,返回首个匹配文件句柄
    • _findnext():获取下一个匹配文件
    • _findclose():释放搜索资源
  2. 关键数据结构

    struct _finddata_t {unsigned attrib;     // 文件属性(普通/目录/隐藏等)time_t time_create;  // 创建时间time_t time_access;  // 访问时间time_t time_write;   // 修改时间_fsize_t size;       // 文件大小char name[_MAX_FNAME]; // 文件名
    };
    
  3. 文件属性常量

    _A_NORMAL  // 普通文件 (0x00000)
    _A_RDONLY  // 只读文件 (0x00001)
    _A_HIDDEN  // 隐藏文件 (0x00002)
    _A_SYSTEM  // 系统文件 (0x00004)
    _A_SUBDIR  // 子目录 (0x00010)
    _A_ARCH    // 存档文件 (0x00020)
    

批量读取代码

#include <iostream>
#include <string>
#include <vector>
#include <io.h> // Windows文件操作头文件
using namespace std;vector<string> getFilesByExtension(const string& folder, const string& ext) {vector<string> fileList;_finddata_t fileInfo;// 构造搜索模式:目录 + 通配符 + 后缀string searchPattern = folder + "\\*" + ext;// 开始搜索long handle = _findfirst(searchPattern.c_str(), &fileInfo);if (handle == -1L) {cerr << "未找到文件: " << searchPattern << endl;return fileList;}do {// 跳过"."和".."目录if (strcmp(fileInfo.name, ".") == 0 || strcmp(fileInfo.name, "..") == 0) continue;// 排除子目录(只保留文件)if (!(fileInfo.attrib & _A_SUBDIR)) {string fullPath = folder + "\\" + fileInfo.name;fileList.push_back(fullPath);}} while (_findnext(handle, &fileInfo) == 0); // 找到下一个文件_findclose(handle); // 关闭搜索句柄return fileList;
}int main() {string folder = "C:\\MyDocs";string extension = ".txt"; // 可改为.pdf/.jpg等vector<string> files = getFilesByExtension(folder, extension);cout << "找到 " << files.size() << " 个" << extension << "文件:\n";for (const string& path : files) {cout << "• " << path << endl;}return 0;
}

相关文章:

  • GTSAM中InitializePose3::initialize()使用详解
  • 介绍常见的图像和视频存储格式以及其优劣势
  • 大模型在颈椎管狭窄诊疗中的应用研究报告
  • 【驱动设计的硬件基础】串口
  • aflplusplus:开源的模糊测试工具!全参数详细教程!Kali Linux教程!(三)
  • C++开源协程库async_simple有栈协程源码分析
  • Python 函数
  • linux驱动开发(9)- 信号量
  • 了解Redis的使用
  • 如何给Hexo-butterfly主题博客在复制时添加版权声明
  • Hive SQL:一小时快速入门指南
  • 读取配置文件到Settings对象的完整实现
  • 【AS32系列MCU调试教程】驱动开发:AS32驱动库的集成与应用实例
  • 拓展:###单向循环链表###
  • comfyui插件和comfyui mac安装
  • 设备被看门狗重置问题
  • RHCE 练习四:编写脚本实现以下功能
  • web方向第一次考核内容
  • Linux免驱使用slcan,使用方法以Ubuntu为例
  • g++ a.cpp -o a ‘pkg-config --cflags --libs opencv4‘/usr/bin/ld: 找不到 没有那个文件或目录
  • lnmp搭建后怎么做网站/谷歌chrome浏览器
  • 太原哪家网站建设公司好/网络营销的模式有哪些?
  • 最牛视频网站建设/合肥优化排名推广
  • 免费网络电话在线拨打/郑州seo外包顾问
  • 网站开发w亿玛酷1负责/打广告去哪个平台
  • 做网站的结论和心得/手机优化专家