программа написана на C++. Данная функция должна составить список музыкальных файлов. При проверке всегда считает, что перед ним каталог. Подскажите пожалуйста где у меня ошибка.
void FindFile(char *folder, vector<string> spisok)
{
const string rasshirenie = ".mp3";
DIR *directory;
struct dirent *dir;
struct stat buf;
string name;
directory = opendir(folder);
while((dir = readdir(directory)) != NULL)
{
name = dir -> d_name;
if(name.compare(".") && name.compare(".."))
{
lstat(&name[0], &buf);
if(S_ISDIR(buf.st_mode)) //не выполняется это условие
FindFile(&name[0], spisok);
if(S_ISREG(buf.st_mode))
{
name = name.substr(name.length() - 4);
if(name.compare(rasshirenie))
spisok.insert(spisok.end(), name);
}
}
}
}