list<string> result;
DIR *dir = opendir(path.str().c_str());
- if(dir)
+ if(!dir)
+ throw system_error("opendir");
+
+ while(dirent *de = readdir(dir))
{
- while(dirent *de = readdir(dir))
- {
- const char *fn = de->d_name;
- if(fn[0]=='.' && (fn[1]==0 || (fn[1]=='.' && fn[2]==0)))
- continue;
- if(r_filter.match(fn))
- result.push_back(fn);
- }
- closedir(dir);
+ const char *fn = de->d_name;
+ if(fn[0]=='.' && (fn[1]==0 || (fn[1]=='.' && fn[2]==0)))
+ continue;
+ if(r_filter.match(fn))
+ result.push_back(fn);
}
+ closedir(dir);
return result;
}