【多传感器融合】【使用代码检查和创建指定路径下文件夹】
0 前言
1 使用
1.1 代码举例
bool FrontEnd::InitDataPath(const YAML::Node& config_node) {
data_path_ = config_node["data_path"].as<std::string>();
if (data_path_ == "./") {
data_path_ = WORK_SPACE_PATH;
}
data_path_ += "/slam_data";
if (boost::filesystem::is_directory(data_path_)) {
boost::filesystem::remove_all(data_path_);
}
boost::filesystem::create_directory(data_path_);
if (!boost::filesystem::is_directory(data_path_)) {
LOG(WARNING) << "文件夹 " << data_path_ << " 未创建成功!";
return false;
} else {
LOG(INFO) << "地图点云存放地址:" << data_path_;
}
std::string key_frame_path = data_path_ + "/key_frames";
boost::filesystem::create_directory(data_path_ + "/key_frames");
if (!boost::filesystem::is_directory(key_frame_path)) {
LOG(WARNING) << "文件夹 " << key_frame_path << " 未创建成功!";
return false;
} else {
LOG(INFO) << "关键帧点云存放地址:" << key_frame_path << std::endl << std::endl;
}
return true;
}
1.2 代码剖析
1.2.1 检查文件夹存在boost::filesystem::is_directory( data_path_)
data_path_ += "/slam_data";
if (boost::filesystem::is_directory(data_path_)) {
boost::filesystem::remove_all(data_path_);
}
1.2.2 删除文件夹boost::filesystem::remove_all(data_path_)
data_path_ += "/slam_data";
if (boost::filesystem::is_directory(data_path_)) {
boost::filesystem::remove_all(data_path_);
}
1.2.3 创建文件夹boost::filesystem::create_directory(data_path_)
data_path_ += "/slam_data";
if (boost::filesystem::is_directory(data_path_)) {
boost::filesystem::remove_all(data_path_);
}
boost::filesystem::create_directory(data_path_);
1.2.4 功能:清空文件夹并重新创建一个
data_path_ += "/slam_data";
if (boost::filesystem::is_directory(data_path_)) {
boost::filesystem::remove_all(data_path_);
}
boost::filesystem::create_directory(data_path_);
1.2.5 检查文件夹的存在并交互输出情况
if (!boost::filesystem::is_directory(data_path_)) {
LOG(WARNING) << "文件夹 " << data_path_ << " 未创建成功!";
return false;
} else {
LOG(INFO) << "地图点云存放地址:" << data_path_;
}