19 #ifndef IRCCD_FS_UTIL_HPP
20 #define IRCCD_FS_UTIL_HPP
30 #include <boost/filesystem.hpp>
47 auto base_name(
const std::string& path) -> std::string;
61 auto dir_name(
const std::string& path) -> std::string;
83 template <
typename Predicate>
84 auto find_if(
const std::string& base,
bool recursive, Predicate&& predicate) -> std::string
86 const auto find = [&] (
auto it) -> std::string {
87 for (
const auto& entry : it)
89 return entry.path().string();
95 ?
find(boost::filesystem::recursive_directory_iterator(base))
96 :
find(boost::filesystem::directory_iterator(base));
112 auto find(
const std::string& base,
const std::string& name,
bool recursive =
false) -> std::string;
123 auto find(
const std::string& base,
const std::regex& regex,
bool recursive =
false) -> std::string;
129 #endif // !IRCCD_FS_UTIL_HPP