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
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
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_;
}