enumerate_directory: Don't list . and ..
[lsnes.git] / src / library / directory.cpp
blob4d0d69d6ec51c537fea2173116a3aa492fe99865
1 #include "directory.hpp"
2 #include "string.hpp"
3 #include <dirent.h>
5 std::set<std::string> enumerate_directory(const std::string& dir, const std::string& match)
7 std::set<std::string> x;
8 DIR* d;
9 dirent* d2;
10 d = opendir(dir.c_str());
11 if(!d) {
12 (stringfmt() << "Can't read directory '" << dir << "'").throwex();
13 return x;
15 while((d2 = readdir(d)))
16 if(regex_match(match, d2->d_name) && strcmp(d2->d_name, ".") && strcmp(d2->d_name, ".."))
17 x.insert(dir + "/" + d2->d_name);
18 closedir(d);
19 return x;