下面的代碼使用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;
}
}