diff options
Diffstat (limited to 'osdep/OSUtils.cpp')
| -rw-r--r-- | osdep/OSUtils.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/osdep/OSUtils.cpp b/osdep/OSUtils.cpp index 33e143da..fd5efed0 100644 --- a/osdep/OSUtils.cpp +++ b/osdep/OSUtils.cpp @@ -73,7 +73,7 @@ bool OSUtils::redirectUnixOutputs(const char *stdoutPath,const char *stderrPath) } #endif // __UNIX_LIKE__ -std::vector<std::string> OSUtils::listDirectory(const char *path) +std::vector<std::string> OSUtils::listDirectory(const char *path,bool includeDirectories) { std::vector<std::string> r; @@ -82,7 +82,7 @@ std::vector<std::string> OSUtils::listDirectory(const char *path) WIN32_FIND_DATAA ffd; if ((hFind = FindFirstFileA((std::string(path) + "\\*").c_str(),&ffd)) != INVALID_HANDLE_VALUE) { do { - if ((strcmp(ffd.cFileName,"."))&&(strcmp(ffd.cFileName,".."))&&((ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0)) + if ( (strcmp(ffd.cFileName,".")) && (strcmp(ffd.cFileName,"..")) && (((ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0)||(((ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0)&&(includeDirectories))) ) r.push_back(std::string(ffd.cFileName)); } while (FindNextFileA(hFind,&ffd)); FindClose(hFind); @@ -98,7 +98,7 @@ std::vector<std::string> OSUtils::listDirectory(const char *path) if (readdir_r(d,&de,&dptr)) break; if (dptr) { - if ((strcmp(dptr->d_name,"."))&&(strcmp(dptr->d_name,".."))&&(dptr->d_type != DT_DIR)) + if ((strcmp(dptr->d_name,"."))&&(strcmp(dptr->d_name,".."))&&((dptr->d_type != DT_DIR)||(includeDirectories))) r.push_back(std::string(dptr->d_name)); } else break; } |
