Verzsichnis durchsuchen?



  • Hi

    ich möchte ein Verzeichnis nach mp3-Dateien durchsuchen. Also wenn die Datei die Endung .mp3 hat, soll der Pfad + Datei in eine Liste geschrieben werden (also z.B. C:\lieder\hallo.mp3)Es soll auch wahlweise die Unterverzeichnisse durchsucht werden.

    Wie macht man sowas?

    Vielen Dank



  • Mit ISO C gar nicht.

    Welches OS benutzt du?

    Schau mal in die entspr. FAQs



  • Hi,

    also wie kingruedi schon gesagt hat, geht das mit ISO C nicht. Gibt aber bei manchen (Windoze-)Compilern die Funktion "searchpath()".
    Syntax:

    #include <dir.h>
    
    char* searchpath( const char* file );
    

    Hier aus einer Hilfedatei die Beschreibung:
    Sucht im Verzeichnispfad des Betriebssystems nach einer Datei.
    searchpath durchsucht zuerst das aktuelle Verzeichnis nach einer Datei mit dem durch den Parameter file angegebenen Namen. Bleibt die Suche erfolglos, dann liest die Funktion die Pfadangaben in der Umgebungsvariablen PATH und durchsucht sämtliche dort angegebenen Verzeichnisse der Reihe nach.
    Wenn die Datei gefunden wurde, liefert searchpath einen Zeiger auf den vollständigen Dateinamen (Laufwerk, Verzeichnis und Dateiname) zurück. Dieser String kann beispielsweise für einen folgenden Aufruf von fopen oder exec... verwendet werden.
    Der zurückgelieferte Zeiger zeigt auf einen statischen Puffer, der bei jedem Aufruf von searchpath überschrieben wird.

    Rückgabewert:
    Bei erfolgreicher Ausführung wird ein Zeiger auf einen String mit dem gefundenen Dateinamen, im Fehlerfall Null, zurückgeliefert.

    PS: ist aber kein ANSI-Standard !!! 😉 🙄

    MfG



  • obwohl theoretisch müsste ja die Bruteforce Methode funzen. Man versucht alle möglichen Buchstaben Kombinationen lesbar als Datei zu öffnen und guckt ob es klappt.

    Naja, dass diese Methode nicht gerade glücklich ist, sollte jedem einleuchten 😉



  • Original erstellt von kingruedi:
    **obwohl theoretisch müsste ja die Bruteforce Methode funzen. Man versucht alle möglichen Buchstaben Kombinationen lesbar als Datei zu öffnen und guckt ob es klappt.

    Naja, dass diese Methode nicht gerade glücklich ist, sollte jedem einleuchten ;)**

    hehe 😃



  • mmh, also wenn das kein ANSI-C ist, ist in meiner Beschreibung, nach der ich das Programm schreiben soll, wohl was anderes gemeint. Ich werd mich mal erkundigen.

    Bruteforce: ja, genau, man hat ja Zeit 😃

    Vielen Dank

    Bernd



  • Auf einigen Systemen sind die Funktionen 'readfirst()' und 'readnext()' verfügbar. Das ist aber - wie gesagt - kein ANSI C.


Anmelden zum Antworten