C++获取指定目录下的所有文件

发布时间 - 2026-01-11 01:50:54    点击率:

本文实例为大家分享了C++获取指定目录下所有文件的具体代码,供大家参考,具体内容如下

1.获得指定目录下的所有文件(不搜索子文件夹)

需要包含的头文件

#include <io.h>
#include <string>
#include <vector>
#include <fstream>

函数实现

void getAllFiles(string path, vector<string>& files) 
{
  // 文件句柄
  long hFile = 0;
  // 文件信息
  struct _finddata_t fileinfo; 

  string p;

  if ((hFile = _findfirst(p.assign(path).append("\\*").c_str(), &fileinfo)) != -1) {
    do {
      // 保存文件的全路径
      files.push_back(p.assign(path).append("\\").append(fileinfo.name));

      } while (_findnext(hFile, &fileinfo) == 0); //寻找下一个,成功返回0,否则-1

    _findclose(hFile);
  }
}

2.获取指定目录下的所有文件(搜索子文件夹)

void getAllFiles(string path, vector<string>& files) {
  //文件句柄
  long hFile = 0;
  //文件信息
  struct _finddata_t fileinfo; 
  string p; 
  if ((hFile = _findfirst(p.assign(path).append("\\*").c_str(), &fileinfo)) != -1) {
    do {
      if ((fileinfo.attrib & _A_SUBDIR)) { //比较文件类型是否是文件夹
        if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0) {
          files.push_back(p.assign(path).append("\\").append(fileinfo.name));
          //递归搜索
          getAllFiles(p.assign(path).append("\\").append(fileinfo.name), files);
        }
      }
      else {
        files.push_back(p.assign(path).append("\\").append(fileinfo.name));
      }
    } while (_findnext(hFile, &fileinfo) == 0); //寻找下一个,成功返回0,否则-1
    _findclose(hFile);
  }
}

3.获取指定格式的文件(不搜索子文件夹)

/*
path: 指定目录
files: 保存结果
fileType: 指定的文件格式,如 .jpg
*/
void getAllFiles(string path, vector<string>& files,string fileType) 
{
  // 文件句柄
  long hFile = 0;
  // 文件信息
  struct _finddata_t fileinfo; 

  string p;

  if ((hFile = _findfirst(p.assign(path).append("\\*" + fileType).c_str(), &fileinfo)) != -1) {
    do {
      // 保存文件的全路径
      files.push_back(p.assign(path).append("\\").append(fileinfo.name));

      } while (_findnext(hFile, &fileinfo) == 0); //寻找下一个,成功返回0,否则-1

    _findclose(hFile);
  }
}

4.测试

int main(int argc, char** argv)
{
  vector<string> temp;
  getAllFiles("J:\\faces\\test", temp,".jpg");
  for (int i = 0; i < temp.size();++i )
  {
    cout << temp[i] << endl;
  }
  return 0;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# C++获取指定目录下文件  # C++获取指定文件  # C++获取文件  # linux C++ 获取文件绝对路径的实例代码  # C++遍历文件夹获取文件列表  # C/C++获取目录下的文件列表信息  # C++获取文件哈希值(hash)和获取torrent(bt种子)磁力链接哈希值  # C++获取zip文件列表方法  # 句柄  # 递归  # 目录下  # 保存文件  # 大家分享  # 具体内容  # 大家多多  # 头文件  # path  # amp  # getAllFiles  # vector  # fstream  # void  # files  # struct  # _finddata_t  # fileinfo  # text  # long 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251811 】 【 AI营销90571


相关推荐: 高性价比服务器租赁——企业级配置与24小时运维服务  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  微信小程序 input输入框控件详解及实例(多种示例)  如何快速打造个性化非模板自助建站?  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  Python制作简易注册登录系统  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  实例解析Array和String方法  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  Laravel如何处理和验证JSON类型的数据库字段  JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)  如何快速生成凡客建站的专业级图册?  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  在线制作视频网站免费,都有哪些好的动漫网站?  移动端脚本框架Hammer.js  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  网站建设要注意的标准 促进网站用户好感度!  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  JavaScript如何实现倒计时_时间函数如何精确控制  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  如何在宝塔面板中修改默认建站目录?  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  如何快速搭建高效WAP手机网站?  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  北京的网站制作公司有哪些,哪个视频网站最好?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践  php 三元运算符实例详细介绍  如何在云服务器上快速搭建个人网站?  Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言  Laravel如何使用Service Container和依赖注入?(代码示例)  如何在Windows服务器上快速搭建网站?  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  EditPlus中的正则表达式实战(5)  Python面向对象测试方法_mock解析【教程】  如何用IIS7快速搭建并优化网站站点?  php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】  太平洋网站制作公司,网络用语太平洋是什么意思?  如何在Windows 2008云服务器安全搭建网站?  JavaScript Ajax实现异步通信  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  简单实现Android文件上传  如何自定义建站之星模板颜色并下载新样式?