|
Die Klasse FullFileIterator erweitert die Basisklasse FileIterator um weitere Suchkriterien. Diese beinhalten:
- Dateiattribute
- Zeit- und Datumsvergleiche
- Größenvergleiche
Auf die Dateiattribute finden boolsche Vergleiche statt, da diese Attribute entweder gesetzt oder nicht gesetzt sind. Die Zeit-, Datums- und Größenvergleiche können hingegen auf gleich, ungleich, größer und kleiner definiert werden.
Öffentliche Member
| |
FullFileIterator( void );
FullFileIterator(
const char *ApszFileSpec,
BOOL AbRecurseSubdirs = TRUE );
Die erste Variante stellt einen Default-Konstruktor dar, der eine Instanz der Klasse ohne Dateispezifikation erzeugt. Damit eine Suche nach Dateien erfolgen kann, muß eine entsprechende Spezifikation später über Member SetFileSpec vorgenommen werden.
Die zweite Variante erlaubt die Übergabe einer Dateimaske im Parameter ApszFileSpec. Hier sind alle unter DOS bzw. Windows üblichen Dateimasken erlaubt.
Ist AbRecurseSubdirs true, werden auch alle Unterverzeichnisse abgesucht. Soll dies nicht erfolgen, muß AbRecurseSubdirs auf false gesetzt werden.
| Konstruktor |
BOOL SetAttributes(
const char *ApszAttributes = NULL );
Die Funktion SetAttributes setzt die Dateiattribute, die für die Suche berücksichtigt werden sollen. Unterstützt werden vier Attribute, die durch Kleinbuchstaben bezeichnet werden:
|
Zeichen
|
Attribut
|
|
a
|
Archive
|
|
h
|
versteckt
|
|
r
|
Nur lesen
|
|
s
|
System
|
Der Parameter ApszAttributes nimmt die einzelnen Buchstaben in Form einer nullterminierten Liste auf. Wird ein Buchstabe von einem Minuszeichen gefolgt, so bedeutet dies, daß das vorangegangene Attribut gelöscht sein muß. Folgt hingegen ein Plus oder das nächste Attribut bzw. der Stringterminator, so muß das Attribut gesetzt sein. Ist ApszAttributes NULL, werden alle vier Attribute ignoriert.
Das Funktionsergebnis lautet true, wenn die Attribute korrekt gesetzt wurden, ansonten false. Letzteres kann nur dann passieren, wenn der Attributestring ApszAttributes ungültig besetzt ist. Im Fehlerfall bleibt die bisherige Spezifikation aktiv.
| Member SetAttributes |
|
Mit der Spezifikation „a-rh“ wird das Objekt angewiesen, nur Dateien zu finden, deren Archiv-Attribut gelöscht ist und die auf versteckt und nur-lesen gesetzt sind.
| Beispiel |
BOOL SetDate(
FI_Comparison AeComparison = FI_Ignore,
int AiDay = CiCurrent,
int AiMonth = CiCurrent,
int AiYear = CiCurrent );
SetDate setzt die Vorgaben für Datumsvergleiche. Der Vergleichsoperator kennt folgende Vergleichsoperationen:
| Member SetDate |
|
Konstante
|
Bedeutung
|
|
FI_Ignore
|
Datum wird ignoriert
|
|
FI_EQ
|
Dateidatum == Spezifikationsdatum
|
|
FI_NE
|
Dateidatum != Spezifikationsdatum
|
|
FI_GT
|
Dateidatum > Spezifikationsdatum
|
|
FI_GE
|
Dateidatum >= Spezifikationsdatum
|
|
FI_LT
|
Dateidatum < Spezifikationsdatum
|
|
FI_LE
|
Dateidatum <= Spezifikationsdatum
|
Die Parameter AiDay und AiMonth enthalten die Vorgaben für den Tag bzw. den Monat. Erlaubt sind Werte von 1..31 bzw. 1..12. Ungültige Angaben werden nicht berücksichtigt. AiYear spezifiziert das Vergleichsjahr, das von 1980 bis 2099 laufen kann. Bei allen drei Parametern wird mit CiCurrent das aktuelle Datum, also Tag, Monat oder Jahr bezeichnet.
Die Funktionsrückgabe lautet true, wenn die Vergleichsparameter gesetzt werden konnten bzw. false, wenn ein ungültiges Datum übergeben wurde. Im Fehlerfall bleibt die bisherige Spezifikation aktiv.
| Vergleichsoperatoren |
BOOL SetTime(
FI_Comparison AeComparison = FI_Ignore,
int AiHour = CiCurrent,
int AiMinute = 0 );
SetTime setzt die Vorgaben für Dateizeitvergleiche. Der Vergleichsoperator AeComparison kennt folgende Vergleichsoperationen:
| Member SetTime |
|
Konstante
|
Bedeutung
|
|
FI_Ignore
|
Zeit wird ignoriert
|
|
FI_EQ
|
Dateizeit == Spezifikationszeit
|
|
FI_NE
|
Dateizeit != Spezifikationszeit
|
|
FI_GT
|
Dateizeit > Spezifikationszeit
|
|
FI_GE
|
Dateizeit >= Spezifikationszeit
|
|
FI_LT
|
Dateizeit < Spezifikationszeit
|
|
FI_LE
|
Dateizeit <= Spezifikationszeit
|
AiHour enthält die Stundenangabe von 0..23 und AiMinute die Minuten von 0..59. CiCurrent bezeichnet in beiden Fällen den aktuellen Wert.
| Vergleichsoperatoren |
BOOL SetSize(
FI_Comparison AeComparison = FI_Ignore,
long AlSize = 0L );
SetSize setzt die Vorgaben für Dateigrößenvergleiche. Der Vergleichsoperator kennt folgende Vergleichsoperationen:
| Member SetSize |
|
Konstante
|
Bedeutung
|
|
FI_Ignore
|
Größe wird ignoriert
|
|
FI_EQ
|
Dateigröße == Spezifikationsgröße
|
|
FI_NE
|
Dateigröße != Spezifikationsgröße
|
|
FI_GT
|
Dateigröße > Spezifikationsgröße
|
|
FI_GE
|
Dateigröße >= Spezifikationsgröße
|
|
FI_LT
|
Dateigröße < Spezifikationsgröße
|
|
FI_LE
|
Dateigröße <= Spezifikationsgröße
|
In AlSize wird die Größe der Datei übergeben.
| Vergleichsoperatoren |
|
Zur Verdeutlichung des Einsatzes der Klasse sind auf der Begleit-CD mehrere Beispielroutinen enthalten, die hier abzudrucken wenig Sinn machen würde.
| Beispielanwendungen
|