PPL7-Icon Patrick's Programming Library Version 7.0.0 - Dokumentation
ppl7::Dir Klassenreferenz

Klasse zum Durchsuchen von Verzeichnissen. Mehr ...

Öffentliche Typen

typedef ppl7::List< const
DirEntry * >::Iterator 
Iterator
 Iterator zum Durchwandern der Verzeichnisliste. Mehr ...
 
enum  Sort {
  SORT_NONE, SORT_FILENAME, SORT_FILENAME_IGNORCASE, SORT_ATIME,
  SORT_CTIME, SORT_MTIME, SORT_SIZE
}
 Sortiermöglichkeiten. Mehr ...
 

Öffentliche Methoden

 Dir ()
 Konstruktor der Klasse. Mehr ...
 
 Dir (const char *path, Sort s=SORT_NONE)
 Konstruktor der Klasse. Mehr ...
 
 Dir (const String &path, Sort s=SORT_NONE)
 Konstruktor der Klasse. Mehr ...
 
 ~Dir ()
 Destruktor der Klasse. Mehr ...
 
void clear ()
 Verzeichnisliste löschen. Mehr ...
 
size_t count () const
 Anzahl Dateien. Mehr ...
 
const DirEntrygetFirst (Iterator &it) const
 Erster Verzeichniseintrag. Mehr ...
 
bool getFirst (DirEntry &e, Iterator &it) const
 Erster Verzeichniseintrag. Mehr ...
 
const DirEntrygetFirstPattern (Iterator &it, const String &pattern, bool ignorecase=false) const
 Erster Verzeichniseintrag, der zu einem bestimmten Muster passt. Mehr ...
 
bool getFirstPattern (DirEntry &e, Iterator &it, const String &pattern, bool ignorecase=false) const
 Erster Verzeichniseintrag, der zu einem bestimmten Muster passt. Mehr ...
 
const DirEntrygetFirstRegExp (Iterator &it, const String &regexp) const
 Erster Verzeichniseintrag, der zu der angegebenen Regular Expression passt. Mehr ...
 
bool getFirstRegExp (DirEntry &e, Iterator &it, const String &regexp) const
 Erster Verzeichniseintrag, der zu der angegebenen Regular Expression passt. Mehr ...
 
const DirEntrygetNext (Iterator &it) const
 Nächster Verzeichniseintrag. Mehr ...
 
bool getNext (DirEntry &e, Iterator &it) const
 Nächster Verzeichniseintrag. Mehr ...
 
const DirEntrygetNextPattern (Iterator &it, const String &pattern, bool ignorecase=false) const
 Nächster Verzeichniseintrag, der zu einem bestimmten Muster passt. Mehr ...
 
bool getNextPattern (DirEntry &e, Iterator &it, const String &pattern, bool ignorecase=false) const
 Nächster Verzeichniseintrag, der zu einem bestimmten Muster passt. Mehr ...
 
const DirEntrygetNextRegExp (Iterator &it, const String &regexp) const
 Nächster Verzeichniseintrag, der zu der angegebenen Regular Expression passt. Mehr ...
 
bool getNextRegExp (DirEntry &e, Iterator &it, const String &regexp) const
 Nächster Verzeichniseintrag, der zu der angegebenen Regular Expression passt. Mehr ...
 
size_t num () const
 Anzahl Dateien. Mehr ...
 
void open (const char *path, Sort s=SORT_NONE)
 Verzeichnis einlesen. Mehr ...
 
void open (const String &path, Sort s=SORT_NONE)
 Verzeichnis einlesen. Mehr ...
 
 PPL7EXCEPTION (PathnameTooLongException, Exception)
 
 PPL7EXCEPTION (NonexistingPathException, Exception)
 
 PPL7EXCEPTION (PermissionDeniedException, Exception)
 
 PPL7EXCEPTION (CreateDirectoryFailedException, Exception)
 
void print () const
 Verzeichnis auf STDOUT ausgeben. Mehr ...
 
void print (const DirEntry &de) const
 Verzeichnis-Eintrag auf STDOUT ausgeben. Mehr ...
 
void reset (Iterator &it) const
 Zeiger auf den ersten Eintrag des Verzeichnisses. Mehr ...
 
void resort (Sort s)
 Sortierung ändern. Mehr ...
 

Öffentliche, statische Methoden

static String currentPath ()
 Aktuelles Verzeichnis. Mehr ...
 
static bool exists (const String &dirname)
 
static String homePath ()
 Homeverzeichnis des aktuellen Users. Mehr ...
 
static void mkDir (const String &path)
 
static void mkDir (const String &path, bool recursive)
 
static void mkDir (const String &path, mode_t mode, bool recursive)
 
static String tempPath ()
 Verzeichnis für temporäre Dateien. Mehr ...
 

Private Methoden

void resortATime ()
 Dateien nach Datum des letzten Zugriffs sortieren. Mehr ...
 
void resortCTime ()
 Dateien nach Datum der letzten Statusänderung sortieren. Mehr ...
 
void resortFilename ()
 Dateien nach Dateiname sortieren. Mehr ...
 
void resortFilenameIgnoreCase ()
 Dateien nach Dateiname sortieren, Gross-/Kleinschreibung wird ignoriert. Mehr ...
 
void resortMTime ()
 Dateien nach Modifizierungsdatum sortieren. Mehr ...
 
void resortNone ()
 Dateien unsortiert belassen. Mehr ...
 
void resortSize ()
 Dateien nach Dateigröße sortieren. Mehr ...
 

Private Attribute

ppl7::List< DirEntryFiles
 Interne Liste mit den eingelesenen, unsortierten Verzeichniseinträgen. Mehr ...
 
String Path
 Pfad des aktuell geöffneten Verzeichnisses. Mehr ...
 
Sort sort
 Aktuelle Sortiermethode. Mehr ...
 
ppl7::List< const DirEntry * > SortedFiles
 Interne sortierte Liste mit Pointern auf die Verzeichniseinträgen. Mehr ...
 

Ausführliche Beschreibung

Beschreibung:
Die Klasse Dir wird zum Lesen von Verzeichnissen verwendet. Dazu muss man zunächst mit Dir::open ein Verzeichnis öffnen oder das gewünschte Verzeichnis gleich im Konstruktor angeben. Anschließend kann man mit den Funktionen Dir::getFirst und Dir::getNext die einzelnen Dateien auslesen.
Sofern man beim Öffnen des Verzeichnis nicht explizit eine Sortiermethode angegeben hat, sind die Dateien unsortiert, bzw. in der Reihenfolge, wie das Betriebssystem sie zurückgegeben hat. Mit dem Befehl Dir::resort kann man aber jederzeit eine andere Sortierung einstellen.
Möchte man nur Dateien, die einem bestimmten Muster (Pattern) entsprechen, kann man statt Dir::getFirst und Dir::getNext auch Dir::getFirstPattern und Dir::getNextPattern verwenden, oder falls mal Regular Expressions verwenden möchte, Dir::getFirstRegExp und Dir::getNextRegExp.
Beispiel:
Das folgende Beispiel zeigt, wie das Homeverzeichnis des aktuellen Benutzers ermittelt wird, und dessen Dateien alphabetisch sortiert ausgegeben werden:
#include <ppl7.h>
int main(int argc, char **argv)
{
// Homeverzeichnis des Users ermitteln
// Verzeichnis öffnen, Dateien nach Dateiname sortieren
// Iterator zum Durchwandern des Verzeichnisses anlegen
d.reset(it);
// Variable zum Aufnehmen der Dateinformationen
// Wir benötigen einen Try-Block, da ppl7::Dir::getNext eine Exception wirft,
// wenn das Ende der Dateiliste erreicht ist
try {
while (1) {
// Nächsten Eintrag holen
e=d.getNext(it);
// Dateinamen ausgeben
std::cout << "Datei: " << e.Filename << "\n";
}
} catch (ppl7::EndOfListException) {
std::cout << "Ende\n";
}
return 0;
Falls wir die Exceptions umgehen wollen, läßt sich die Schleife auch so realisieren:
while (d.getNext(e,it)) {
std::cout << "Datei: " << e.Filename << "\n";
}

Dokumentation der benutzerdefinierten Datentypen

Beschreibung:
Dieser Iterator wird benötigt, wenn man die Verzeichnisliste mit Dir::getNext oder den verwandten Befehlen durchwandern will.
Beispiel:
// Iterator zum Durchwandern des Verzeichnisses anlegen
d.reset(it);
while (d.getNext(e,it)) {
std::cout << "Datei: " << e.Filename << "\n";
}

Dokumentation der Aufzählungstypen

In dieser Enumeration sind die verschiedenen Sortiermöglichkeiten definiert, die als Parameter der Funktionen Dir::open, Dir::resort und des Konstruktors der Klasse Dir verwendet werden können.

Aufzählungswerte
SORT_NONE 

Keine Sortierung. Die Reihenfolge der Dateien hängt vom Betriebs- und Filesystem ab.

SORT_FILENAME 

Es wird eine Sortierung anhand der Dateinamen vorgenommen. Dabei wird Groß- und Kleinschreibung beachtet. Dateien, die mit einem Großbuchstaben beginnen, werden zuerst aufgelistet, danach Dateien mit Kleinbuchstaben.

SORT_FILENAME_IGNORCASE 

Es wird eine Sortierung anhand der Dateinamen vorgenommen. Dabei wird Groß- und Kleinschreibung ignoriert. Dateien mit Großbuchstaben und Kleinbuchstaben werden vermischt ausgegeben, wobei jedoch die Alphabetische Reihenfolge erhalten bleibt.

SORT_ATIME 

Es wird eine Sortierung nach dem Datum des letzten Zugriffs vorgenommen.

SORT_CTIME 

Es wird eine Sortierung nach dem Datum der letzten Statusänderung vorgenommen. Eine Statusänderung besteht nicht nur bei Neuanlage und Schreibzugriff, sondern auch bei Änderung der Zugriffsrechte oder Verlinkung.

SORT_MTIME 

Es wird eine Sortierung nach dem Datum der letzten Modifikation vorgenommen. Dieser Zeitstempel ändert sich nur bei Neuanlage der Datei oder des Verzeichnisses, oder wenn ein Schreibzugriff stattgefunden hat.

SORT_SIZE 

Es wird eine Sortierung nach der Größe der Datei vorgenommen.

Beschreibung der Konstruktoren und Destruktoren

ppl7::Dir::Dir ( )
Beschreibung:
Konstruktor der Klasse, ohne ein Verzeichnis zu öffnen.
ppl7::Dir::Dir ( const char *  path,
Sort  s = SORT_NONE 
)
Beschreibung:
Der Konstruktor sorgt dafür, dass die internen Variablen und Datenstrukturen initialisert werden. Mit dem Parameter path wird das zu öffnende Verzeichni angegeben. Optional kann mit s eine Sortierreihenfolge vorgegeben werden. Ohne Angabe des Parameters findet keine Sortierung statt.
Parameter
[in]pathZu öffnender Pfad (siehe auch Dir::open)
[in]sgewünschte Sortierreihenfolge. Defaultmäßig wird keine Sortierung verwendet.
ppl7::Dir::Dir ( const String path,
Sort  s = SORT_NONE 
)
Beschreibung:
Der Konstruktor sorgt dafür, dass die internen Variablen und Datenstrukturen initialisert werden. Mit dem Parameter path wird das zu öffnende Verzeichni angegeben. Optional kann mit s eine Sortierreihenfolge vorgegeben werden. Ohne Angabe des Parameters findet keine Sortierung statt.
Parameter
[in]pathZu öffnender Pfad (siehe auch Dir::open)
[in]sgewünschte Sortierreihenfolge. Defaultmäßig wird keine Sortierung verwendet.
ppl7::Dir::~Dir ( )
Beschreibung:
Der Destruktor sorgt dafür, dass der intern reservierte Speicher wieder freigegeben wird.

Dokumentation der Elementfunktionen

void ppl7::Dir::clear ( )
Beschreibung:
Wird diese Funktion nach Dir::open aufgerufen, wird die interne Dateiliste wieder gelöscht und der durch die Klasse belegte Speicher freigegeben. Die Funktion wird automatisch vom Destruktor und zu Beginn von Dir::open aufgerufen, so dass sich ein manueller Aufruf der Funktion in der Regel erübrigt.
size_t ppl7::Dir::count ( ) const
Beschreibung:
Diese Funktion liefert die Anzahl Einträge im geöffneten Verzeichnis zurück. Sie gibt daher erst nach Aufruf von Dir::open einen korrekten Wert zurück. Einträge können nicht nur Dateien sein, sondern auch Verzeichnisse und Symlinks.
Rückgabe
Anzahl Einträge im geöffneten Verzeichnis
bool ppl7::Dir::exists ( const String dirname)
static
const DirEntry & ppl7::Dir::getFirst ( Iterator it) const
Beschreibung:
Durch Aufruf dieser Funktion wird der Iterator it auf den ersten Verzeichniseintrag gesetzt und dessen Daten zurückgegeben. Alle weiteren Einträge können mit Dir::getNext ausgelesen werden.
Die Reihenfolge der durch Dir::getFirst und Dir::getNext zurückgelieferten Dateien hängt von der eingestellten Sortierung ab. Siehe dazu Dir::resort und Dir::open
Parameter
itIterator vom Typ ppl7::Dir::Iterator
Rückgabe
Referenz auf die erste Datei des Verzeichnisses.
Ausnahmebehandlung
EndOfListExceptionWird geworfen, wenn keine Einträge im geöffneten Verzeichnis vorhanden sind.
bool ppl7::Dir::getFirst ( DirEntry e,
Iterator it 
) const
Beschreibung:
Durch Aufruf dieser Funktion wird der Iterator it auf die erste gefundene Datei gesetzt. Deren Daten werden in das DirEntry Objekt e kopiert. Alle weiteren Dateien können mit Dir::getNext ausgelesen werden.
Die Reihenfolge der durch Dir::getFirst und Dir::getNext zurückgelieferten Dateien hängt von der eingestellten Sortierung ab. Siehe dazu Dir::resort und Dir::open
Parameter
[out]eObjekt, in dem die Daten der Datei gespeichert werden sollen
[in,out]itIterator vom Typ ppl7::Dir::Iterator
Rückgabe
Gibt true zurück, wenn eine Datei im Verzeichnis vorhanden war, sonst false. Falls ein Fehler auftritt, kann auch eine Exception geworfen werden.
const DirEntry & ppl7::Dir::getFirstPattern ( Iterator it,
const String pattern,
bool  ignorecase = false 
) const
Beschreibung:
Durch Aufruf dieser Funktion wird der Iterator it auf die erste Datei gesetzt, die zu dem angegebenen Muster pattern passt. Die Daten der Datei werden als Referenz zurückgegeben. Alle weiteren Dateien können mit Dir::getNextPattern ausgelesen werden.
Die Reihenfolge der durch Dir::getFirstPattern und Dir::getNextPattern zurückgelieferten Dateien hängt von der eingestellten Sortierung ab. Siehe dazu Dir::resort, Dir::open
Parameter
[in]itIterator vom Typ ppl7::Dir::Iterator
[in]patternEin beliebiges Suchpattern, wie es auch beim Unix-Befehl "ls" oder mit "dir" unter Windows angegeben werden kann. Dabei sind die Wildcards "*" und "?" erlaubt. Das Sternchen "*" steht dabei für beliebig viele Zeichen, das Fragezeichen "?" für ein einzelnes.
[in]ignorecaseWird diese Variable auf "true" gesetzt, wird Groß- und Kleinschreibung ignoriert. Wird als Pattern beispielsweise "*.TXT" angegeben, würde auch "*.txt" passen. Der Default ist "false".
Rückgabe
Referenz auf die erste Datei des Verzeichnisses.
Ausnahmebehandlung
EndOfListExceptionWird geworfen, wenn keine Einträge im geöffneten Verzeichnis vorhanden sind.
bool ppl7::Dir::getFirstPattern ( DirEntry e,
Iterator it,
const String pattern,
bool  ignorecase = false 
) const
Beschreibung:
Durch Aufruf dieser Funktion wird die erste Datei aus dem Verzeichnis, die zu dem angegebenen Muster pattern passt, in das DirEntry Objekt e kopiert. Alle weiteren Dateien können mit Dir::getNextPattern ausgelesen werden.
Die Reihenfolge der durch Dir::getFirstPattern und Dir::getNextPattern zurückgelieferten Dateien hängt von der eingestellten Sortierung ab. Siehe dazu Dir::resort und Dir::open
Parameter
[out]eObjekt, in dem die Daten der Datei gespeichert werden sollen
[in,out]itIterator vom Typ ppl7::Dir::Iterator
[in]patternEin beliebiges Suchpattern, wie es auch beim Unix-Befehl "ls" oder mit "dir" unter Windows angegeben werden kann. Dabei sind die Wildcards "*" und "?" erlaubt. Das Sternchen "*" steht dabei für beliebig viele Zeichen, das Fragezeichen "?" für ein einzelnes.
[in]ignorecaseWird diese Variable auf "true" gesetzt, wird Groß- und Kleinschreibung ignoriert. Wird als Pattern beispielsweise "*.TXT" angegeben, würde auch "*.txt" passen. Der Default ist "false"
Rückgabe
Gibt true zurück, wenn eine Datei im Verzeichnis vorhanden war, sonst false. Falls ein Fehler auftritt, kann auch eine Exception geworfen werden.
const DirEntry & ppl7::Dir::getFirstRegExp ( Iterator it,
const String regexp 
) const
Beschreibung:
Durch Aufruf dieser Funktion wird der Iterator it auf die erste Datei gesetzt, die zu der angegebenen Regular Expression regexp passt. Die Daten der Datei werden als Referenz zurückgegeben. Alle weiteren Dateien können mit Dir::getNextRegExp ausgelesen werden.
Die Reihenfolge der durch Dir::getFirstPattern und Dir::getNextPattern zurückgelieferten Dateien hängt von der eingestellten Sortierung ab. Siehe dazu Dir::resort, Dir::open
Parameter
[in]itIterator vom Typ ppl7::Dir::Iterator
[in]regexpEine beliebige Perl kompatible Regular Expression. Beispiel:"/^*.txt$/i"
Rückgabe
Referenz auf die erste Datei des Verzeichnisses.
Ausnahmebehandlung
EndOfListExceptionWird geworfen, wenn keine Einträge im geöffneten Verzeichnis vorhanden sind.
bool ppl7::Dir::getFirstRegExp ( DirEntry e,
Iterator it,
const String regexp 
) const
Beschreibung:
Durch Aufruf dieser Funktion wird die erste Datei aus dem Verzeichnis, die zu der angegebenen Regular Expression regexp passt, in das DirEntry Objekt e kopiert. Alle weiteren Dateien können mit Dir::getNextPattern ausgelesen werden.
Die Reihenfolge der durch Dir::getFirstPattern und Dir::getNextPattern zurückgelieferten Dateien hängt von der eingestellten Sortierung ab. Siehe dazu Dir::resort und Dir::open
Parameter
[out]eObjekt, in dem die Daten der Datei gespeichert werden sollen
[in,out]itIterator vom Typ ppl7::Dir::Iterator
[in]regexpEine beliebige Perl kompatible Regular Expression. Beispiel:"/^*.txt$/i"
Rückgabe
Gibt true zurück, wenn eine Datei im Verzeichnis vorhanden war, sonst false. Falls ein Fehler auftritt, kann auch eine Exception geworfen werden.
const DirEntry & ppl7::Dir::getNext ( Iterator it) const
Beschreibung:
Durch Aufruf dieser Funktion wird der Iterator it auf den nächsten Verzeichniseintrag gesetzt und dessen Daten zurückgegeben.
Die Reihenfolge der durch Dir::getFirst und Dir::getNext zurückgelieferten Dateien hängt von der eingestellten Sortierung ab. Siehe dazu Dir::resort und Dir::open
Parameter
itIterator vom Typ ppl7::Dir::Iterator
Rückgabe
Referenz auf die nächste Datei des Verzeichnisses.
Ausnahmebehandlung
EndOfListExceptionWird geworfen, wenn das Ende der Liste erreicht wurde.
bool ppl7::Dir::getNext ( DirEntry e,
Iterator it 
) const
Beschreibung:
Diese Funktion kopiert die nächste Datei aus dem geöffneten Verzeichnis in das DirEntry Objekt e
Die Reihenfolge der durch Dir::getFirst und Dir::getNext zurückgelieferten Dateien hängt von der eingestellten Sortierung ab. Siehe dazu Dir::resort und Dir::open
Parameter
[out]eObjekt, in dem die Daten der Datei gespeichert werden sollen
[in,out]itIterator vom Typ ppl7::Dir::Iterator
Rückgabe
Gibt true zurück, wenn eine Datei im Verzeichnis vorhanden war, sonst false. Falls ein Fehler auftritt, kann auch eine Exception geworfen werden.
const DirEntry & ppl7::Dir::getNextPattern ( Iterator it,
const String pattern,
bool  ignorecase = false 
) const
Beschreibung:
Durch Aufruf dieser Funktion wird der Iterator it auf den nächsten Verzeichniseintrag gesetzt, der zu dem angegebenen Muster pattern passt, und dessen Daten zurückgegeben.
Die Reihenfolge der durch Dir::getFirstPattern und Dir::getNextPattern zurückgelieferten Dateien hängt von der eingestellten Sortierung ab. Siehe dazu Dir::resort, Dir::open
Parameter
[in]itIterator vom Typ ppl7::Dir::Iterator
[in]patternEin beliebiges Suchpattern, wie es auch beim Unix-Befehl "ls" oder mit "dir" unter Windows angegeben werden kann. Dabei sind die Wildcards "*" und "?" erlaubt. Das Sternchen "*" steht dabei für beliebig viele Zeichen, das Fragezeichen "?" für ein einzelnes.
[in]ignorecaseWird diese Variable auf "true" gesetzt, wird Groß- und Kleinschreibung ignoriert. Wird als Pattern beispielsweise "*.TXT" angegeben, würde auch "*.txt" passen. Der Default ist "false"
Rückgabe
Referenz auf die nächste Datei des Verzeichnisses.
Ausnahmebehandlung
EndOfListExceptionWird geworfen, wenn das Ende der Liste erreicht wurde.
bool ppl7::Dir::getNextPattern ( DirEntry e,
Iterator it,
const String pattern,
bool  ignorecase = false 
) const
Beschreibung:
Diese Funktion kopiert die nächste Datei aus dem geöffneten Verzeichnis, die zu dem angegebenen Muster pattern passt, in das DirEntry Objekt e
Die Reihenfolge der durch Dir::getFirstPattern und Dir::getNextPattern zurückgelieferten Dateien hängt von der eingestellten Sortierung ab. Siehe dazu Dir::resort und Dir::open
Parameter
[out]eObjekt, in dem die Daten der Datei gespeichert werden sollen
[in,out]itIterator vom Typ ppl7::Dir::Iterator
[in]patternEin beliebiges Suchpattern, wie es auch beim Unix-Befehl "ls" oder mit "dir" unter Windows angegeben werden kann. Dabei sind die Wildcards "*" und "?" erlaubt. Das Sternchen "*" steht dabei für beliebig viele Zeichen, das Fragezeichen "?" für ein einzelnes.
[in]ignorecaseWird diese Variable auf "true" gesetzt, wird Groß- und Kleinschreibung ignoriert. Wird als Pattern beispielsweise "*.TXT" angegeben, würde auch "*.txt" passen. Der Default ist "false"
Rückgabe
Gibt true zurück, wenn eine Datei im Verzeichnis vorhanden war, sonst false. Falls ein Fehler auftritt, kann auch eine Exception geworfen werden.
const DirEntry & ppl7::Dir::getNextRegExp ( Iterator it,
const String regexp 
) const
Beschreibung:
Durch Aufruf dieser Funktion wird der Iterator it auf den nächsten Verzeichniseintrag gesetzt, der zu der angegebenen Regular Expression regexp passt, und dessen Daten zurückgegeben.
Die Reihenfolge der durch Dir::getFirstPattern und Dir::getNextPattern zurückgelieferten Dateien hängt von der eingestellten Sortierung ab. Siehe dazu Dir::resort, Dir::open
Parameter
[in]itIterator vom Typ ppl7::Dir::Iterator
[in]regexpEine beliebige Perl kompatible Regular Expression. Beispiel:"/^*.txt$/i"
Rückgabe
Referenz auf die nächste Datei des Verzeichnisses.
Ausnahmebehandlung
EndOfListExceptionWird geworfen, wenn das Ende der Liste erreicht wurde.
bool ppl7::Dir::getNextRegExp ( DirEntry e,
Iterator it,
const String regexp 
) const
Beschreibung:
Diese Funktion kopiert die nächste Datei aus dem geöffneten Verzeichnis, die zu der angegebenen Regular Expression regexp passt, in das DirEntry Objekt e.
Die Reihenfolge der durch Dir::getFirstPattern und Dir::getNextPattern zurückgelieferten Dateien hängt von der eingestellten Sortierung ab. Siehe dazu Dir::resort und Dir::open
Parameter
[out]eObjekt, in dem die Daten der Datei gespeichert werden sollen
[in,out]itIterator vom Typ ppl7::Dir::Iterator
[in]regexpEine beliebige Perl kompatible Regular Expression. Beispiel:"/^*.txt$/i"
Rückgabe
Gibt true zurück, wenn eine Datei im Verzeichnis vorhanden war, sonst false. Falls ein Fehler auftritt, kann auch eine Exception geworfen werden.
void ppl7::Dir::mkDir ( const String path)
static
void ppl7::Dir::mkDir ( const String path,
bool  recursive 
)
static
void ppl7::Dir::mkDir ( const String path,
mode_t  mode,
bool  recursive 
)
static
size_t ppl7::Dir::num ( ) const
Beschreibung:
Diese Funktion liefert die Anzahl Einträge im geöffneten Verzeichnis zurück. Sie gibt daher erst nach Aufruf von Dir::open einen korrekten Wert zurück. Einträge können nicht nur Dateien sein, sondern auch Verzeichnisse und Symlinks.
Rückgabe
Anzahl Einträge im geöffneten Verzeichnis
void ppl7::Dir::open ( const char *  path,
Sort  s = SORT_NONE 
)
Beschreibung:
Mit dieser Funktion wird das mit path angegebene Verzeichnis geöffnet, eingelesen und mit der Sortiermethode s sortiert.
Parameter
[in]pathZu öffnender Pfad (siehe auch CDir::Open)
[in]sgewünschte Sortierreihenfolge. Defaultmäßig wird keine Sortierung verwendet.
Rückgabe
Die Funktion hat keinen Rückgabewert. Bei Auftreten eines Fehlers wird eine Exception geworfen.
void ppl7::Dir::open ( const String path,
Sort  s = SORT_NONE 
)
Beschreibung:
Mit dieser Funktion wird das mit path angegebene Verzeichnis geöffnet, eingelesen und mit der Sortiermethode s sortiert.
Parameter
[in]pathZu öffnender Pfad (siehe auch CDir::Open)
[in]sgewünschte Sortierreihenfolge. Defaultmäßig wird keine Sortierung verwendet.
Rückgabe
Die Funktion hat keinen Rückgabewert. Bei Auftreten eines Fehlers wird eine Exception geworfen.
ppl7::Dir::PPL7EXCEPTION ( PathnameTooLongException  ,
Exception   
)
ppl7::Dir::PPL7EXCEPTION ( NonexistingPathException  ,
Exception   
)
ppl7::Dir::PPL7EXCEPTION ( PermissionDeniedException  ,
Exception   
)
ppl7::Dir::PPL7EXCEPTION ( CreateDirectoryFailedException  ,
Exception   
)
void ppl7::Dir::print ( ) const
Beschreibung:
Mit dieser Funktion wird das mit Dir::open oder im Konstruktor ausgewählte Verzeichnis auf STDOUT ausgegeben. Die Ausgabe ist ähnlich der des "ls"-Befehls unter Unix, enthält jedoch nicht die Benutzerrechte. Die Funktion wurde hauptsächlich zu Debuggingzwecken eingebaut.
void ppl7::Dir::print ( const DirEntry de) const
Beschreibung:
Mit dieser Funktion kann ein Verzeichniseintrag auf STDOUT ausgegeben werden. Die Ausgabe ist ähnlich der des "ls"-Befehls unter Unix, enthält jedoch nicht die Benutzerrechte. Die Funktion wurde hauptsächlich zu Debuggingzwecken eingebaut.
Parameter
[in]deReferenz auf einen Verzeichniseintrag
void ppl7::Dir::reset ( Iterator it) const
Beschreibung:
Mit dieser Funktion wird der Zeiger des Iterators it auf den ersten Eintrag im Verzeichnis gesetzt. Der nächste Aufruf von einer der "getNext..."-Funktionen würde somit den ersten Eintrag zurückliefern.
Parameter
itIterator vom Typ ppl7::Dir::Iterator
void ppl7::Dir::resort ( Sort  s)
Beschreibung:
Durch Aufruf dieser Funktion kann die Sortierreihenfolge für die get...-Befehle geändert werden. Standardmäßig werden die Dateien unsortiert zurückgegeben. Die Reihenfolge hängt somit im Wesentlichen davon ab, in welcher Reihenfolge die Dateien erstellt wurden, aber auch von Betriebs- und Filesystemabhängigen Vorgängen.
Die Sortierreihenfolge läßt sich jederzeit durch Aufruf dieser Funktion ändern.
Parameter
[in]sDie gewünschte Sortierreihenfolge. Siehe dazu auch die Enumeration Dir::Sort
Ausnahmebehandlung
IllegalArgumentExceptionWird geworfen, wenn eine ungültige Sortiermethode angegeben wird
void ppl7::Dir::resortATime ( )
private
Beschreibung:
Diese interne Funktion sortiert das durch Dir::open eingescannte Verzeichnis nach dem Zeitstempel des letzten Zugriffs auf die Datei. Falls mehrere Dateien den gleichen Zeitstempel haben, ist deren Reihenfolge unbestimmt.
Die Funktion wird von Dir::resort in Abhängigkeit des eingestellten Sortieralgorithmus aufgerufen.
void ppl7::Dir::resortCTime ( )
private
Beschreibung:
Diese interne Funktion sortiert das durch Dir::open eingescannte Verzeichnis nach dem Zeitstempel der letzten Statusänderung der Dateien. Eine Statusänderung besteht nicht nur bei Neuanlage und Schreibzugriff, sondern auch bei Änderung der Zugriffsrechte oder Verlinkung. Falls mehrere Dateien den gleichen Zeitstempel haben, ist deren Reihenfolge unbestimmt.
Die Funktion wird von Dir::resort in Abhängigkeit des eingestellten Sortieralgorithmus aufgerufen.
void ppl7::Dir::resortFilename ( )
private
Beschreibung:
Diese interne Funktion sortiert das durch Dir::open eingescannte Verzeichnis nach Dateiname, unter Beachtung von Gross-/Kleinschreibung. Die Funktion wird von Dir::resort in Abhängigkeit des eingestellten Sortieralgorithmus aufgerufen.
void ppl7::Dir::resortFilenameIgnoreCase ( )
private
Beschreibung:
Diese interne Funktion sortiert das durch Dir::open eingescannte Verzeichnis nach Dateiname, wobei Gross-/Kleinschreibung ignoriert wird. Die Funktion wird von Dir::resort in Abhängigkeit des eingestellten Sortieralgorithmus aufgerufen.
void ppl7::Dir::resortMTime ( )
private
Beschreibung:
Diese interne Funktion sortiert das durch Dir::open eingescannte Verzeichnis nach dem Modifikations-Zeitstempel der Dateien. Dieser Zeitstempel ändert sich nur bei Neuanlage der Datei oder des Verzeichnisses, oder wenn ein Schreibzugriff stattgefunden hat. Falls mehrere Dateien den gleichen Zeitstempel haben, ist deren Reihenfolge unbestimmt.
Die Funktion wird von Dir::resort in Abhängigkeit des eingestellten Sortieralgorithmus aufgerufen.
void ppl7::Dir::resortNone ( )
private
Beschreibung:
Diese interne Funktion kopiert lediglich das von Dir::open eingescannte Verzeichnis unsortiert in die von den Iterationsfunktionen verwendete Liste. Die Funktion wird von Dir::resort in Abhängigkeit des eingestellten Sortieralgorithmus aufgerufen.
void ppl7::Dir::resortSize ( )
private
Beschreibung:
Diese interne Funktion sortiert das durch Dir::open eingescannte Verzeichnis nach der Größe der Dateien. Falls mehrere Dateien mit gleicher Größe vorhanden sind, ist deren Reihenfolge unbestimmt.
Die Funktion wird von Dir::resort in Abhängigkeit des eingestellten Sortieralgorithmus aufgerufen.

Dokumentation der Datenelemente

ppl7::List< DirEntry > ppl7::Dir::Files
private
Beschreibung:
Interne Liste mit den eingelesenen, unsortierten Verzeichniseinträgen
ppl7::Dir::Path
private
Beschreibung:
Pfad des aktuell geöffneten Verzeichnisses
ppl7::Dir::sort
private
Beschreibung:
Aktuelle Sortiermethode
ppl7::Dir::SortedFiles
private
Beschreibung:
Interne sortierte Liste mit Pointern auf die Verzeichniseinträgen

Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien: