Leggere le directory con dirent.h

di il
8 risposte

Leggere le directory con dirent.h

Salve, ho un piccolo problema con la libreria dirent.
Questo e' il mio codice:

    DIR *currentDirectory;
    string directory;
    struct dirent *pent;
    pent  = NULL;
    currentDirectory = NULL;
    
   /...
   
   currentDirectory = opendir(".");
        if(currentDirectory == NULL)
        {
            cout <<"Error: Can't open the current directory!" <<endl;
            exit(1);
        }
        while (pent = readdir (currentDirectory)) // while there is still something in the directory to list
        {
            directory = pent->d_name; //Preferisco aver il nome in forma di stringa (in futuro tutti i nomi dei file 
                                               	    //verranno salvati in un vettore di stringhe)
            cout <<directory <<endl;
        }
          closedir (currentDirectory);
    
    
    
Funziona quasi tutto perfettamente, il problema e' che legge solo i files, le due directory (che nel file progetto sono "bin" e "object") le legge rispettivamente "." e "..". Ho sbagliato qualcosa?
P.s. Potrei farne a meno, ma non ci riesco... Su Internet ho provato a cercare informazioni su cosa sia esattamente una variabile "struct dirent" (credo sia un puntatore al nome della directory...?), l'operatore "->" e il "d_name", ma non ho trovato quasi nulla di chiaro... Qualche buona anima potrebbe spiegarmelo?

8 Risposte

Devi accedere o registrarti per scrivere nel forum
8 risposte