verzeichnis in combo auslesen



  • Hallo,
    ich möchte gerne den inhalt einer combobox mit dateinamen(*.ini) füllen.
    Ich programmiere nur hobbymäßig,deswegen lasst euch bitte nicht über meinen styl aus ... (in der schule machen wir turbo pascal)
    Gemeint ist:
    ...
    -exedir
    --database(dir) //zu durchsuchendes verzeichnis
    ---fisch.ini
    ---käse.ini
    ---wurst.ini
    ---...

    in der combobox soll dann stehen
    fisch
    käse
    wurst

    den verzeichnispfad habe ich ermittelt über:

    getcwd( buffer, 256);
    strcpy (str,buffer);  
    strcat (str,"\\database");
    strcat (str,"\\");
    

    ich glaube das ist nicht gerade der schönste weg, aber es funktioniert...
    wie kann ich jetzt überprüfen welche/wieviele dateien vorhanden sind?
    in google hab ich GetFiles() gefunden, aber dazu fehlt mir glaube ich die header datei.
    wäre super wenn mir jmd weiter helfen könnte
    MfG Lukas



  • Dafür gibt es die beiden Funktionen FindFirstFile und FindNextFile . Damit kannst du das gesamte Verzeichnis durchsuchen und alle Dateien mit der Endung .ini rausfiltern.



  • ok danke
    ... das hatte ich davor schon versucht aber es hat nicht hingehauen ...
    dieses mal hat es geklappt-> der fehler war:
    fHandle=FindFirstFile(str,&wfd);
    str sag so aus : C:\Dokumente und Einstellungen\knall\Desktop\learningtool\
    nachdem ich deine antwort gelesen habe is mir aufgefallen , dass da noch der * fehlt:
    C:\Dokumente und Einstellungen\knall\Desktop\learningtool\*
    damit klappts

    danke für die schnelle antwort
    MfG Lukas



  • Als Wildcard solltest du *.ini angeben. Dann werden nur die ini Dateien aufgelistet.



  • irgend etwas klappt trotzdem nicht ... díe erste und alle ab der 3ten *.ini werden gefunden ... die 2te nicht ...jmd ne idee woran das liegen könnte

    HANDLE fHandle;
         WIN32_FIND_DATA wfd;
         int i=0;
         char *array[20];
         fHandle=FindFirstFile(str,&wfd);
         String_Data_Write(wfd.cFileName,"test.txt");    //funktion, die den string ans ende der .txt kopiert              
         while (FindNextFile(fHandle,&wfd))
         {
         if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
         {
         }
         else
         {
             array[i]=wfd.cFileName;
             array[i]=strtok(array[i], ".");
             String_Data_Write(array[i],"test.txt");
             i=i+1;
         }
         }
         FindClose(fHandle);
    

    MfG Lukas

    edit: gelöst nochmal vielen dank an alle


Anmelden zum Antworten