Public Member Functions | |
dirstream (const char *dirName, const filter_base &entryFilter=no_f(), recurse_mode recMode=recursive_no, const filter_base &subDirFilter=no_f()) | |
~dirstream () | |
Schließt den Strom und gibt alle Ressourcen frei. | |
operator unspecified_bool_type () const | |
dirstream & | operator>> (std::string &name) |
std::streamsize | readsome (std::string *r, std::streamsize n) |
bool | open (const char *dirName, const filter_base &entryFilter, recurse_mode recMode=recursive_no, const filter_base &subDirFilter=no_f()) |
bool | open (const char *dirName, recurse_mode recMode=recursive_no) |
Öffnet das Verzeichnis dirName unter Verwendung der im Konstruktor angegebenen Filter. | |
bool | is_open () const |
Liefert true, falls ein Verzeichnis erfolgreich geöffnet wurde. | |
void | rewind () |
"Spult" ein Verzeichnisstrom zurück. | |
void | close () |
Schließt den Verzeichnisstrom und gibt das intern verwaltet Verzeichnis-Handle frei. |
pred_f
mem_fun_f
ptr_fun_f
dirstr::dirstream::dirstream | ( | const char * | dirName, | |
const filter_base & | entryFilter = no_f() , |
|||
recurse_mode | recMode = recursive_no , |
|||
const filter_base & | subDirFilter = no_f() | |||
) |
Erstellt ein neues dirstream-Objekt für die Durchwanderung des Verzeichnisses dirName.
dirName | Name des zu durchwandernden Verzeichnisses | |
entryFilter | Filter der für die Auswahl von Verzeichniseinträgen verwendet werden soll. Der Default-Wert no_f steht für "kein Filter", es werden alle Verzeichniseinträge ausgewählt. | |
recMode | Zu verwendender Suchmodus. | |
subDirFilter | Filter der bei der Auswahl von Unterverzeichnissen angewendet werden soll. Wird nur berücksichtigt falls recurse_mode::recursive_yes angegeben wurde. Der Default-Wert no_f steht für "kein Filter", es werden alle Unterverzeichnisse ausgewählt. |
open_error | Eine open_error-Exception wird geworfen, falls dirName kein gültiges Verzeichnis ist bzw. dieses Verzeichnis nicht geöffnet werden kann. |
dirstr::dirstream::~dirstream | ( | ) |
Schließt den Strom und gibt alle Ressourcen frei.
Der Destruktor ruft implizit die close-Funktion auf. close muss also in der Regel nicht explizit aufgerufen werden.
dirstr::dirstream::operator unspecified_bool_type | ( | ) | const [inline] |
Ermöglicht die Verwendung eines Stream-Objekts innerhalb eines bool'schen Ausdrucks. Erlaubt also Ausdrücke wie if (stream)
dirstream & dirstr::dirstream::operator>> | ( | std::string & | name | ) |
Über diesen Operator wird der nächste Eintrag des Verzeichnisses eingelesen.
name | String in dem der Name des aktuellen Verzeichniseintrags gespeichert werden soll. |
open_error | Eine open_error-Exception wird geworfen, falls bei der rekursiven Traversierung eines Verzeichnisses ein Unterverzeichnis nicht geöffnet werden kann. |
std::streamsize dirstr::dirstream::readsome | ( | std::string * | r, | |
std::streamsize | n | |||
) |
Liest maximal n-Einträge aus dem Verzeichnis-Strom und speichert diese im Array r.
n >= 0
r | String-Array der Größe n oder größer. | |
n | Anzahl der zu lesenden Einträge |
open_error | Eine open_error-Exception wird geworfen, falls bei der rekursiven Traversierung eines Verzeichnisses ein Unterverzeichnis nicht geöffnet werden kann. |
bool dirstr::dirstream::open | ( | const char * | dirName, | |
const filter_base & | entryFilter, | |||
recurse_mode | recMode = recursive_no , |
|||
const filter_base & | subDirFilter = no_f() | |||
) |
bool dirstr::dirstream::open | ( | const char * | dirName, | |
recurse_mode | recMode = recursive_no | |||
) |
Öffnet das Verzeichnis dirName unter Verwendung der im Konstruktor angegebenen Filter.
Sollte dieses Objekt bereits mit einem Verzeichnis verbunden sein, ruft open zuerst close auf bevor es das neue Verzeichnis öffnet.
void dirstr::dirstream::rewind | ( | ) |
"Spult" ein Verzeichnisstrom zurück.
Ein solcher Strom kann also wieder von vorne durchlaufen werden. Der Aufruf von rewind invalidiert alle Dirstream-Iteratoren die mit diesem Strom verbunden sind.
void dirstr::dirstream::close | ( | ) |
Schließt den Verzeichnisstrom und gibt das intern verwaltet Verzeichnis-Handle frei.
Der Aufruf von close macht alle dirstream_iteratoren die mit diesem Objekt verbunden sind ungültig.