Verzeichnisse werden nicht in der Rekursion geöffnet
So ich hab ein kleines Programm geschrieben, was rekursiv durch die Verzeichnisse geht udn die Dateien in eine Liste einträgt. Doch komischerweise werden die Ordner einen Stufe tiefer nicht mehr als Ordner erkannt (genauer gesagt: "kein Dir: .." wird ausgegeben). Teilweise kann er bestimmte Ordner auch nicht öffnen. Am Ende geht er sogar gar nicht in die Rekursion und erkennt Ordner nur als Dateien. Hat jemand eine Ahnung woran es liegen könnte? Sprache ist übrigens c++.
Code:
int rekdir(string dirs)
{
DIR *aktdir;
struct dirent *aktdirzeiger;
struct dirent *merkdirzeiger;
if((aktdir=opendir(dirs.c_str()))==NULL)
{
cout << "Fehler beim öffnen" << endl;
}
else
{
while((aktdirzeiger=readdir(aktdir))!=NULL)
{
string aktdirn="";
aktdirn=(*aktdirzeiger).d_name;
//debug aktdir
//cout << aktdirn << endl;
//cout << aktdirn << aktdirn.find(".") << endl;
if(aktdirn.find(".")!=0)
{
if(opendir(aktdirn.c_str())==NULL)
{
cout << "kein Dir: " << aktdirn << endl;
listeeintragen(dirs, aktdirn);
}
else
{
cout << "Rekdir: " << aktdirn << endl;
rekdir(aktdirn);
}
}
}
if(closedir(aktdir) == -1)
{
cout << "Fehler beim schließen" << endl;
}
}
}