Inheritance diagram for dirstr::pattern_f:
Public Member Functions | |
pattern_f (const char *pattern, entry_type types=files_and_dirs_not_dot_or_dot_dot, bool checkPath=false, bool ignoreCase=false) | |
bool | operator() (const std::string &entryName) const |
Liefert true, falls entryName dem im Ctor übergebenen Pattern genügt und vom richtigen Typ ist. | |
ADD_CLONE_IMPL (pattern_f) | |
Classes | |
class | invalid_pattern |
Exception die geworfen wird, falls ein ungültiges Pattern an pattern_f übergeben wurde. More... |
pattern_f unterstützt derzeit weder Ranges noch Negation, d.h. [a-z] matched entweder 'a', '-' oder 'z' nicht ein beliebiges Zeichen zwischen a und z.
Auf POSIX.2 konformen Systemen sollte auf die weitaus leistungsfähigeren Funktionen fnmatch bzw. glob zurückgegriffen werden. fnmatch kann man mit dem dirstream z.B. wie folgt nutzen:
#include <fnmatch.h> struct FnMatcher { FnMatcher(const char* pattern, int flags) : pattern_(pattern) , flags_(flags) {} bool operator()(const std::string& e) const { return ::fnmatch(pattern_, e.c_str(), flags_); } private: const char* pattern_; int flags_; }; ... dirstream s(".", pred_f(FnMatcher("*.cpp", 0));
dirstr::pattern_f::pattern_f | ( | const char * | pattern, | |
entry_type | types = files_and_dirs_not_dot_or_dot_dot , |
|||
bool | checkPath = false , |
|||
bool | ignoreCase = false | |||
) | [inline, explicit] |
pattern | Muster dem auszuwählende Einträge genügen müssen. | |
types | Eintragstypen die untersucht werden sollen. | |
checkPath | false, falls nur der Name des Eintrags, nicht aber sein Pfad beim pattern matching berücksichtigt werden soll. false ist der Default-Wert. |
ignoreCase | true, falls case-insensitiv verglichen werden soll. |
pattern_f::invalid_pattern | pattern_f::invalid_pattern |