SFileFind

Ermöglicht das Suchen nach Dateien und Ordnen [Mehr ...]

Vererbung

Basisklassen(n)   abgeleitete Klassen
  SFileFind  

Attribute

protected:

Attribut Typ Beschreibung
data _finddata_t Struktur mit Ergebnissen der Dateisuche
hFile long Dateihandle
search SString Suchmaske der letzten Suche
searchpath SString Pfad der letzten Suche

Operationen

public:

Name Parameter Rückgabewert Beschreibung
exists const SString& filename BOOL Statische Funktion, die keine weiteren Informationen speichert, sondern nur prüft, ob die Datei vorhanden ist.
findFirst const SString& filename BOOL Startet die Suche nach einer Datei/Dateigruppe.
findNext BOOL Setzt eine mit findFirst() begonnene Suche fort.
getAttribute int Liefert die Dateiattribute einer mit findFirst(...) oder findNext() gefundenen Datei.
getFullPath SString Gibt den vollständigen Pfad mit Dateinamen zurück.
getName SString Liefert den Dateinamen einer mit findFirst(...) oder findNext() gefundenen Datei.
getSize int Liefert die Dateigröße einer mit findFirst(...) oder findNext() gefundenen Datei.
getTimeCreate STime Liefert die Zeit der Erstellung einer mit findFirst(...) oder findNext() gefundenen Datei.
getTimeWrite STime Liefert die Zeit des letzten Schreibzugriffs einer mit findFirst(...) oder findNext() gefundenen Datei.
isDir BOOL Ermittelt ob eine mit findFirst(...) oder findNext() gefundene Datei ein Verzeichnis (Ordner) ist.
isDots BOOL Ermittelt ob eine mit findFirst(...) oder findNext() gefundenen Datei das Verzeichnis '.' (aktuelles Verzeichnis) oder '..' (übergeordnetes Verzeichnis) ist.
scanTree const SString& path,
SStringList& files,
const SString& mask="*.*",
const SString& relPath=""
int Ermittelt rekursiv alle Dateien eines Verzeichnisses.

Detailbeschreibung SFileFind

Ermöglicht das Suchen nach Dateien und Ordnen


und die Überprüfung auf das Vorhandensein von Dateien/Ordnen.

Beispiel: Dateiliste in ein Array schreiben

SStringList files;
SFileFind ff;
BOOL cont=ff.findFirst("*.*");
while(cont)
{
	// Nur wenn es eine Datei ist 
	if(!ff.isDots() && !ff.isDir()) 
		files.add(ff.getFullPath());
	cont=ff.findNext();
}

Funktionsbeschreibungen

static exists(const SString& filename) BOOL

Statische Funktion, die keine weiteren Informationen speichert, sondern nur prüft, ob die Datei vorhanden ist.

Parameter:

filename Dateiname mit Pfad

Rückgabe:

BOOL Die Datei ist vorhanden.

findFirst(const SString& filename) BOOL

Startet die Suche nach einer Datei/Dateigruppe.

Kann Wildcards enthalten.

Beispiel:

FileFind ff;
ff.findFirst("c:\\mydata\\*.txt");

Parameter:

filename Dateiname mit Pfad

Rückgabe:

BOOL Es wurde eine Datei gefunden.

findNext() BOOL

Setzt eine mit findFirst() begonnene Suche fort.

Rückgabe:

BOOL Eine weitre Datei wurde gefunden.

getAttribute() int

Liefert die Dateiattribute einer mit findFirst(...) oder findNext() gefundenen Datei.

Rückgabe:

int Kombination der Dateiattribute
  • _A_ARCH
  • _A_HIDDEN
  • _A_NORMAL
  • _A_RDONLY
  • _A_SUBDIR
  • _A_SYSTEM

getFullPath() SString

Gibt den vollständigen Pfad mit Dateinamen zurück.

Rückgabe:

SString vollständiger Pfad mit Dateiname der letzten erfolgreichen Suche

getName() SString

Liefert den Dateinamen einer mit findFirst(...) oder findNext() gefundenen Datei.

Rückgabe:

SString Dateiname ohne Pfad

getSize() int

Liefert die Dateigröße einer mit findFirst(...) oder findNext() gefundenen Datei.

Rückgabe:

int Dateigröße

getTimeCreate() STime

Liefert die Zeit der Erstellung einer mit findFirst(...) oder findNext() gefundenen Datei.

Rückgabe:

STime Zeit der Erstellung

getTimeWrite() STime

Liefert die Zeit des letzten Schreibzugriffs einer mit findFirst(...) oder findNext() gefundenen Datei.

Rückgabe:

STime Zeit des letzten Schreibzugriffs

isDir() BOOL

Ermittelt ob eine mit findFirst(...) oder findNext() gefundene Datei ein Verzeichnis (Ordner) ist.

Rückgabe:

BOOL Datei ist ein Verzeichnis (Ordner)

isDots() BOOL

Ermittelt ob eine mit findFirst(...) oder findNext() gefundenen Datei das Verzeichnis '.' (aktuelles Verzeichnis) oder '..' (übergeordnetes Verzeichnis) ist.

Rückgabe:

BOOL Die Datei ist ein 'Dot-Verzeichnis'

static scanTree(const SString& path, SStringList& files,const SString& mask="*.*", const SString& relPath="") int

Ermittelt rekursiv alle Dateien eines Verzeichnisses.

Es werden alle Dateien eines Verzeichnisses sowie seiner Unterverzeichnisse ermittelt und mit relativem Pfad in der übergebenen SStringList gespeichert. Es wird an die SStringList angefügt.
Der Inhalt des Parameters relPath wird für die Rekursion duch die Unterverzeichnisse verwendet und sollte leer beiben. Sein Inhalt wird, mit '\' abgetrennt, vor jedem gefundenen Dateinamen eingefügt.
Die Funktion kann je nach Anzahl der Dateien und Unterverzeichnisse etwas länger dauern. Eine Auslagerung in einen Extra-Thread kann deshalb sinnvoll sein.

Parameter:

path Pfad des zu scannenden Verzeichnisses ohne abschließenden Backslash
files SStringList,die mit den Dateinamen gefüllt werden soll
mask (optional) Dateimaske
relPath muss leer sein (=aktuelles Unterverzeichnis für die Rekursion)

Rückgabe:

int Anzahl der in die Liste eingefügten Dateien.