c++之读取文件夹中的文件

2021-06-29 02:06

阅读:331

标签:查找文件   details   排序   blog   rdo   struct   test   targe   pos   

目录
  • 前言
  • 代码
  • 参考

前言

做对应于播放rosbag包的离线版本, 读取文件夹中image和pcd来处理, 因此需要读取文件夹下的图像文件, 然后根据图像的名称来读取pcd.

代码

#include  
#include  
#include  
#include  
#include 
#include 

// 查找文件夹下的制定文件, 如png, pcd文件, 同时输出的按照文件名排名
bool getFileNames(const std::string& path, const std::string& sub_name, std::vector<:string>& file_name_v)
{
  file_name_v.clear();
  // find
  DIR* p_dir;
  struct dirent* ptr;
  if (!(p_dir = opendir(path.c_str())))
  {
    WARN d_name;
    if (file_name.find(sub_name) != -1)  //没有找到返回-1
    {
      file_name_v.emplace_back(file_name);
    }
  }
  closedir(p_dir);

  if (file_name_v.empty())
  {
    WARN 

查找path下的文件, 保证该文件名包含sub_name, 最后对file_name_v进行排序.

bool offlinePattern(ros::NodeHandle& nh, cv::FileStorage& fs_reader)
{
  std::string data_path;
  fs_reader["data_path"] >> data_path;
  if (data_path.empty())
  {
    WARN  image_file_name_v;
  if (!getFileNames(data_path, image_sub_name, image_file_name_v))
  {
    return false;
  }
  INFO ::Ptr input_cloud_ptr(new pcl::PointCloud<:pointxyzi>);
  for (size_t i = 0; i 

使用std::string的函数提取image_file_name中的名字, 比如/home/test/11.png, 则得到/home/test/11这个值.

int pose = image_file_name.find_first_of(".");
std::string sub_name = image_file_name.substr(0, pose);

参考

  • 巨坑io.h ubuntu中读取指定目录中的所有文件
  • C++搜索文件夹内所有图像并按顺序播放

注: 第二个参考是windows下的.

c++之读取文件夹中的文件

标签:查找文件   details   排序   blog   rdo   struct   test   targe   pos   

原文地址:https://www.cnblogs.com/chrislzy/p/14942305.html


评论


亲,登录后才可以留言!