45#include <drain/RegExp.h>
62 typedef Path<std::string,
'/',
true,
false,
true>
path_t;
66 template<
typename ...TT>
83 this->extension.clear();
88 return (dir.empty() && tail.empty());
93 template<
typename ...TT>
95 void set(
const TT &... args){
100 template<
typename T,
typename ...TT>
101 void append(
const T & arg,
const TT &... args){
108 void append(
const FilePath & path);
114 void append(
const std::string & s);
118 void append(
const char *s){
119 append(std::string(s));
134 bool operator==(
const FilePath & p)
const {
139 if (p.extension != extension)
151 std::string extension;
163 std::ostream &
toStream(std::ostream & ostr)
const {
167 if (!dir.back().empty())
168 ostr << dir.separator.character;
173 if (!extension.empty())
174 ostr <<
'.' << extension;
181 std::string str()
const {
182 std::stringstream sstr;
188 operator std::string ()
const {
193 FilePath & operator<<(
const FilePath & path){
209 int mkdir(
const std::string & dirpath,
int flags = S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH){
210 return mkdir(FilePath::path_t(dirpath), flags);
215 int mkdir(
const FilePath::path_t & dirpath,
int flags = S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
218 void debug(std::ostream & ostr = std::cout)
const;
222 void handleBasename(
const std::string & basename);
227std::ostream & operator<<(std::ostream & ostr,
const FilePath & p) {
228 return p.toStream(ostr);
Extracts and stores directory path, base filename and extension.
Definition FilePath.h:58
virtual std::ostream & toStream(std::ostream &ostr) const
Directory path separator.
Definition FilePath.h:163
FilePath(const TT &... args)
Constructor.
Definition FilePath.h:68
void append(const T2 &arg, const TT &... args)
Append path with element(s), path(s) or string(s).
Definition Path.h:200
Definition DataSelector.cpp:1277