|
@@ -75,38 +75,35 @@ bool OSUtils::redirectUnixOutputs(const char *stdoutPath,const char *stderrPath)
|
|
|
}
|
|
|
#endif // __UNIX_LIKE__
|
|
|
|
|
|
-std::map<std::string,bool> OSUtils::listDirectory(const char *path)
|
|
|
+std::vector<std::string> OSUtils::listDirectory(const char *path)
|
|
|
{
|
|
|
- std::map<std::string,bool> r;
|
|
|
+ std::vector<std::string> r;
|
|
|
|
|
|
#ifdef __WINDOWS__
|
|
|
HANDLE hFind;
|
|
|
WIN32_FIND_DATAA ffd;
|
|
|
if ((hFind = FindFirstFileA((std::string(path) + "\\*").c_str(),&ffd)) != INVALID_HANDLE_VALUE) {
|
|
|
do {
|
|
|
- if ((strcmp(ffd.cFileName,"."))&&(strcmp(ffd.cFileName,"..")))
|
|
|
- r[std::string(ffd.cFileName)] = ((ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0);
|
|
|
+ if ((strcmp(ffd.cFileName,"."))&&(strcmp(ffd.cFileName,".."))&&((ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0))
|
|
|
+ r.push_back(std::string(ffd.cFileName));
|
|
|
} while (FindNextFileA(hFind,&ffd));
|
|
|
FindClose(hFind);
|
|
|
}
|
|
|
#else
|
|
|
struct dirent de;
|
|
|
struct dirent *dptr;
|
|
|
-
|
|
|
DIR *d = opendir(path);
|
|
|
if (!d)
|
|
|
return r;
|
|
|
-
|
|
|
dptr = (struct dirent *)0;
|
|
|
for(;;) {
|
|
|
if (readdir_r(d,&de,&dptr))
|
|
|
break;
|
|
|
if (dptr) {
|
|
|
- if ((strcmp(dptr->d_name,"."))&&(strcmp(dptr->d_name,"..")))
|
|
|
- r[std::string(dptr->d_name)] = (dptr->d_type == DT_DIR);
|
|
|
+ if ((strcmp(dptr->d_name,"."))&&(strcmp(dptr->d_name,".."))&&(dptr->d_type != DT_DIR))
|
|
|
+ r.push_back(std::string(dptr->d_name));
|
|
|
} else break;
|
|
|
}
|
|
|
-
|
|
|
closedir(d);
|
|
|
#endif
|
|
|
|