Alle Dateien eines Ordners auslesen



  • Hallo,

    ich möchte alle in einem Ordner enthaltenen Textdateien nacheinander auslesen.

    char Line[128];
    int i;
    char Folder[] = {"c:\\test"};	
    
    FILE *Datei;
    
    if ((_chdir(Folder)) != -1)
    {
    	if (Datei = _popen("dir /b *.txt","rt") != NULL)
    	{
    		fgets(Line, 128, Datei);
                ...
    	}
    	else
    	{
    		printf("fehler");
    	}
    }
    

    In der Zeile mit "_popen" möchte ich prüfen, ob überhaupt Textdateien vorhanden sind. Nun gibt die pipe ja keinen Fehler zurück, sondern lediglich das Ergebnis von "dir". Wenn keine Textdateien vorhanden sind, bedeutet das für _popen noch keinen Fehler... leider.
    Wie kann man das lösen? Gibt es evtl. eine elegantere Lösung?
    Ich bin noch etwas frün in Sachen C.
    Danke



  • _popen("dir /b *.txt > ergebnis.dat","rt")
    

    Danach öffnest du die Datei ergebnis.dat und liest die Daten aus





  • DoctorO schrieb:

    ich möchte alle in einem Ordner enthaltenen Textdateien nacheinander auslesen.

    #include <sys/types.h>
    #include <dirent.h>
    
    int main() {
       DIR *mydir;
       struct dirent *myent;
    
       mydir = opendir("/home/doctoro");
       while (myent = readdir(mydir)) {
          printf("%s\n", myent->d_name);
       }
       closedir(mydir);
    }
    

    ... hätte ich jetzt mal gesagt 😉


Anmelden zum Antworten