diff --git a/modules/contrib/include/opencv2/contrib/contrib.hpp b/modules/contrib/include/opencv2/contrib/contrib.hpp index ae86bd0428..d5ec5ef776 100644 --- a/modules/contrib/include/opencv2/contrib/contrib.hpp +++ b/modules/contrib/include/opencv2/contrib/contrib.hpp @@ -609,9 +609,9 @@ namespace cv class CV_EXPORTS Directory { public: - static std::vector GetListFiles ( const string& directoryName, bool addPath = true ); - static std::vector GetListFilesR ( const string& directoryName, bool addPath = true ); - static std::vector GetListFolders( const string& directoryName, bool addPath = true ); + static std::vector GetListFiles ( const std::string& path, const std::string & exten = "*", bool addPath = true ); + static std::vector GetListFilesR ( const std::string& path, const std::string & exten = "*", bool addPath = true ); + static std::vector GetListFolders( const std::string& path, const std::string & exten = "*", bool addPath = true ); }; } diff --git a/modules/contrib/src/inputoutput.cpp b/modules/contrib/src/inputoutput.cpp index 1f2969704f..640180d59b 100644 --- a/modules/contrib/src/inputoutput.cpp +++ b/modules/contrib/src/inputoutput.cpp @@ -10,16 +10,16 @@ namespace cv { - std::vector Directory::GetListFiles( const string& directoryName, bool addPath ) + std::vector Directory::GetListFiles( const std::string& path, const std::string & exten, bool addPath ) { std::vector list; list.clear(); - std::string path = directoryName + "/*"; + std::string path_f = path + "/" + exten; #ifdef WIN32 WIN32_FIND_DATA FindFileData; HANDLE hFind; - hFind = FindFirstFile((LPCSTR)path.c_str(), &FindFileData); + hFind = FindFirstFile((LPCSTR)path_f.c_str(), &FindFileData); if (hFind == INVALID_HANDLE_VALUE) { return list; @@ -35,7 +35,7 @@ namespace cv FindFileData.dwFileAttributes == FILE_ATTRIBUTE_READONLY) { if (addPath) - list.push_back(directoryName + "/" + FindFileData.cFileName); + list.push_back(path + "/" + FindFileData.cFileName); else list.push_back(FindFileData.cFileName); } @@ -62,16 +62,16 @@ namespace cv return list; } - std::vector Directory::GetListFolders( const string& directoryName, bool addPath ) + std::vector Directory::GetListFolders( const std::string& path, const std::string & exten, bool addPath ) { std::vector list; - std::string path = directoryName + "/*"; + std::string path_f = path + "/" + exten; list.clear(); #ifdef WIN32 WIN32_FIND_DATA FindFileData; HANDLE hFind; - hFind = FindFirstFile((LPCSTR)path.c_str(), &FindFileData); + hFind = FindFirstFile((LPCSTR)path_f.c_str(), &FindFileData); if (hFind == INVALID_HANDLE_VALUE) { return list; @@ -85,7 +85,7 @@ namespace cv strcmp(FindFileData.cFileName, "..") != 0) { if (addPath) - list.push_back(directoryName + "/" + FindFileData.cFileName); + list.push_back(path + "/" + FindFileData.cFileName); else list.push_back(FindFileData.cFileName); } @@ -113,16 +113,16 @@ namespace cv return list; } - std::vector Directory::GetListFilesR ( const string& directoryName, bool addPath ) + std::vector Directory::GetListFilesR ( const std::string& path, const std::string & exten, bool addPath ) { - std::vector list = Directory::GetListFiles(directoryName, addPath); + std::vector list = Directory::GetListFiles(path, exten, addPath); - std::vector dirs = Directory::GetListFolders(directoryName, addPath); + std::vector dirs = Directory::GetListFolders(path, exten, addPath); std::vector::const_iterator it; for (it = dirs.begin(); it != dirs.end(); ++it) { - std::vector cl = Directory::GetListFiles(*it, addPath); + std::vector cl = Directory::GetListFiles(*it, exten, addPath); list.insert(list.end(), cl.begin(), cl.end()); }