Wie kann ich in C ein Verz nach Files durchsuchen

Hi,
mein Problem ist das ich einen Ordner nach allen Dateien mit dem suffix .mp3 durchsuchen will und deren namen in ein array speichern möchte. gibt es da irgendwie eine funktion in C ?
Danke im Vorraus für eure Hilfe
neonomicus
 
Code:
#include <sys/types.h>
#include <dirent.h>

DIR *opendir (const char *pfad); //gibt zurück: DIR-Zeiger (bei Erfolg), NULL bei Fehler
struct dirent *readdir (DIR *zgr); //gibt zurück: struct dirent-Zeiger (Bei Erfolg), NULL bei Fehler
void rewinddir (DIR *zgr);
int closedir (DIR *zgr); //gib zurück: 0 (Erfolg), -1 (Fehler)

Die Struktur DIR ist eine interne Struktur, die von diesen vier Funktionen benutzt wird, um Informationen über das zu lesende Verzeichnis zu erhalten und untereinander auszutauschen.

Der von der Funktion "opendir" zurückgegebene Zeiger auf die Struktur DIR wird von den anderen 3 Funktionen benutzt, um den Inhalt eines Verzeichnisses schrittweise zu lesen (readdir), den Lesezeiger im Verzeichnis wieder auf den Anfang der Namesliste zu stellen (rewinddir) oder aber die Verzeichnis-Datei zu schliessen (closedir) und damit den Lesevorgang in diesem Verzeichnis zu beenden.

Nach einem "opendir" wird mit dem ersten "readdir" der erste Eintrag aus der Verzeichnis-Datei gelesen. Jedes weitere "readdir" liest dann immer den nächsten Eintrag.

Die Reihenfolge, in der die Einträge in einem Verzeichnis von "readdir" gelesen werden, ist implementierungsabhängig und muss nicht alphabetisch sein.
 
Danke für die schnele Antwort, aber :) ich hab vergessen zu erwähnen das ich das für mein Windows brauche (das für Unix brauche ich aber auch wegen einer umsetzung :) ) Wie sähe das denn dafür aus ? (win)
Mfg
neonomicus
 
vom prinzip her musste das ähnlich ablaufen ich werd nachher mal (wenn ich die "§$%$& cd wiedergefunden habe in der vc++ online hilfe nachschauen.
 
Moin,

nein, unter Windows sieht das eben nicht so aus. Ich bin auch auf der Suche nach einer portablen Lösung. Praktisch habe ich noch keine gefunden, theoretisch würde sich "cygwin" anbieten, Emulation oder Umsetzung der UNIX-Schnittstelle auf Windows.

Aber das bedeutet, daß man halt die "cygwin" Umgebung installieren muß, läuft also (anscheinend) nicht mit Visual C.

Wenn jemand eine schlauere Idee hat, wie's auf beiden Systemen läuft, bitte hier posten!!!

Dank im Voraus.
 
also es sollte auf jeden fall irgendwie gehen ...
im zusammenhang mit ner listbox gehts mit sendmessage und dem übergebenen Parameter LB_DIR, kannst ja mal in der msdn library guckn.
wie's anders (direkt in ein array) geht weiß ich nihc genau .. werd wenn ich zeit hab ma guckn geht aber bestimmt
 
@normagest: Jo, ich meine auch es gibt eine Lösung, immerhin ist Windows selbst in C programmiert und hat ja ne suchfunktion ...
 
Mööp, ich hab grad kein Visual Basic drauf und seit dem letzten mal VBsen letztes jahr nur noch die Netzwerksachen und die grundlagen sonst im Kopf :(
aber, wenn M$ das kann können wir das schon lange, stimmts ?
 
Zurück
Oben