C++遴选出特定类型的文件或文件名符合要求的文件

铁佛  金牌会员 | 2024-4-21 16:17:02 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 902|帖子 902|积分 2706

  本文介绍基于C++语言,遍历文件夹中的全部文件,并从中获取指定类型的文件的方法。
  首先,我们来明确一下本文所需实现的需求。现在有一个文件夹,其中包含了很多文件,如下图所示;我们如果想获取其中所有类型为.bmp格式的文件的名称,如果文件数量比较多的话,手动筛选就会很麻烦。而借助C++代码就可以简单地实现这一需求。如果需要借助Python代码来实现同样的需求,可以参考文章Python ArcPy批量掩膜、重采样大量遥感影像,基于其中提到的arcpy.ListRasters()函数来实现。

  首先需要说明的是,本文代码只能实现对某一文件夹下的文件进行遍历并筛选;如果是当前文件夹下的子文件夹中的文件,这一代码是没有办法遍历的。大家如果有相关需求的话,可以尝试在本文代码中加几个判断语句来实现;或者参考HDF格式遥感影像批量转为TIFF格式:ArcPy实现Python求取文件夹内的文件数量、子文件夹内的文件数量这两篇文章,基于其中提到的方法用Python代码来实现。
  本文分为两部分,第一部分为代码的分段讲解,第二部分为完整代码。
1 分段代码介绍

1.1 代码准备

  这一部分主要是代码的头文件、命名空间与我们自行撰写的自定义函数get_need_file()的声明;具体代码如下所示。
  1. #include <iostream>
  2. #include <vector>
  3. #include <io.h>
  4. using namespace std;
  5. void get_need_file(string path, vector<string>& file, string ext);
复制代码
  其中,由于我们在接下来的代码中需要用到容器vector这一数据类型,因此首先需要添加#include ;同时,我们在接下来的代码中需要用到头文件io.h中的部分函数(主要都是一些与计算机系统、文件管理相关的函数),因此需要添加#include 。
  接下来,这里声明了一个自定义函数get_need_file(),具体我们在本文1.3部分介绍。
1.2 主函数

  这一部分介绍代码的main()函数;具体代码如下所示。
[code]int main() {        string file_path = R"(E:\02_Project\02_ChlorophyllProduce\01_Data\00_Test)";        vector my_file;        string need_extension = ".bmp";        get_need_file(file_path, my_file, need_extension);        for (int i = 0; i < my_file.size(); i++)        {                cout

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

铁佛

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表