19 #ifndef FILESYSTEM_HELPERS_HPP
20 #define FILESYSTEM_HELPERS_HPP
23 #include <qi/session.hpp>
25 #include <boost/filesystem.hpp>
26 #include <boost/filesystem/operations.hpp>
27 #include <boost/algorithm/string/replace.hpp>
43 boost::algorithm::replace_all(rootFolder,
"\\\\",
"\\");
44 boost::filesystem::path folderPath(rootFolder);
45 if (boost::filesystem::exists(folderPath)){
46 boost::filesystem::directory_iterator end_itr;
48 for (boost::filesystem::directory_iterator dirIte(rootFolder); dirIte != end_itr; ++dirIte )
50 boost::filesystem::path filePath(dirIte->path());
52 if (!boost::filesystem::is_directory(dirIte->status()) )
54 file_size = file_size + boost::filesystem::file_size(filePath);
58 }
catch(std::exception& e){
59 std::cout << e.what() << std::endl;
65 inline void getFiles(
const boost::filesystem::path& root,
const std::string& ext, std::vector<boost::filesystem::path>& ret)
67 if(!boost::filesystem::exists(root) || !boost::filesystem::is_directory(root))
return;
69 boost::filesystem::recursive_directory_iterator it(root);
70 boost::filesystem::recursive_directory_iterator endit;
74 if(boost::filesystem::is_regular_file(*it) && it->path().extension() == ext)
76 ret.push_back(it->path().filename());
82 inline void getFilesSize(
const boost::filesystem::path& root,
long& file_size)
84 std::vector<boost::filesystem::path> files_path;
86 for (std::vector<boost::filesystem::path>::const_iterator it=files_path.begin();
87 it!=files_path.end(); it++)
90 file_size = file_size + boost::filesystem::file_size(*it);
91 }
catch(std::exception& e){
92 std::cout << e.what() << std::endl;
103 std::cout <<
"found a catkin prefix " <<
path << std::endl;
107 std::cout <<
"found a qibuild path " <<
path << std::endl;
113 inline std::string&
getURDF( std::string filename )
117 std::cout <<
"found a catkin URDF " <<
path << std::endl;
120 static std::string
path = qi::path::findData(
"/urdf/", filename );
121 std::cout <<
"found a qibuild URDF " <<
path << std::endl;