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?