下面的代码使用Boost库实现文件夹下所有pcd文件名称的提取,首先创建两个向量pcd_files_和pcd_paths用于存储文件夹下的点云序列和路径的序列。
boost::filesystem::is_directory:用于判断传入的参数dir_是否为目录。
boost::filesystem::directory_iterator:结合for循环可以遍历文件path内的所有内容。
#include <boost/filesystem.hpp>
#include <string>
#include <iostream>
std::vector<std::string> pcd_files_;
std::vector<boost::filesystem::path> pcd_paths_;
int main()
{
pcd_files_.clear();
pcd_paths_.clear();
std::string dir_ = "D:\\project\\PCL";
boost::filesystem::directory_iterator end_iter;
if (boost::filesystem::is_directory(dir_))
{
for (boost::filesystem::directory_iterator itr(dir_); itr != end_iter; ++itr)
{
std::string ext = itr->path().extension().string();
if (ext.compare(".pcd") == 0)
{
pcd_files_.push_back(itr->path().string());
pcd_paths_.push_back(itr->path());
}
else
{
}
}
}
else
{
std::cout << "不是一个路径" << std::endl;
}
}