class CV_EXPORTS Directory
{
public:
- static std::vector<std::string> GetListFiles ( const string& directoryName, bool addPath = true );
- static std::vector<std::string> GetListFilesR ( const string& directoryName, bool addPath = true );
- static std::vector<std::string> GetListFolders( const string& directoryName, bool addPath = true );
+ static std::vector<std::string> GetListFiles ( const std::string& path, const std::string & exten = "*", bool addPath = true );
+ static std::vector<std::string> GetListFilesR ( const std::string& path, const std::string & exten = "*", bool addPath = true );
+ static std::vector<std::string> GetListFolders( const std::string& path, const std::string & exten = "*", bool addPath = true );
};
}
\r
namespace cv\r
{\r
- std::vector<std::string> Directory::GetListFiles( const string& directoryName, bool addPath )\r
+ std::vector<std::string> Directory::GetListFiles( const std::string& path, const std::string & exten, bool addPath )\r
{\r
std::vector<std::string> list;\r
list.clear();\r
- std::string path = directoryName + "/*";\r
+ std::string path_f = path + "/" + exten;\r
#ifdef WIN32\r
WIN32_FIND_DATA FindFileData;\r
HANDLE hFind;\r
\r
- hFind = FindFirstFile((LPCSTR)path.c_str(), &FindFileData);\r
+ hFind = FindFirstFile((LPCSTR)path_f.c_str(), &FindFileData);\r
if (hFind == INVALID_HANDLE_VALUE) \r
{\r
return list;\r
FindFileData.dwFileAttributes == FILE_ATTRIBUTE_READONLY)\r
{\r
if (addPath)\r
- list.push_back(directoryName + "/" + FindFileData.cFileName);\r
+ list.push_back(path + "/" + FindFileData.cFileName);\r
else\r
list.push_back(FindFileData.cFileName);\r
}\r
return list;\r
}\r
\r
- std::vector<std::string> Directory::GetListFolders( const string& directoryName, bool addPath )\r
+ std::vector<std::string> Directory::GetListFolders( const std::string& path, const std::string & exten, bool addPath )\r
{\r
std::vector<std::string> list;\r
- std::string path = directoryName + "/*";\r
+ std::string path_f = path + "/" + exten;\r
list.clear();\r
#ifdef WIN32\r
WIN32_FIND_DATA FindFileData;\r
HANDLE hFind;\r
\r
- hFind = FindFirstFile((LPCSTR)path.c_str(), &FindFileData);\r
+ hFind = FindFirstFile((LPCSTR)path_f.c_str(), &FindFileData);\r
if (hFind == INVALID_HANDLE_VALUE) \r
{\r
return list;\r
strcmp(FindFileData.cFileName, "..") != 0)\r
{\r
if (addPath)\r
- list.push_back(directoryName + "/" + FindFileData.cFileName);\r
+ list.push_back(path + "/" + FindFileData.cFileName);\r
else\r
list.push_back(FindFileData.cFileName);\r
}\r
return list;\r
}\r
\r
- std::vector<std::string> Directory::GetListFilesR ( const string& directoryName, bool addPath )\r
+ std::vector<std::string> Directory::GetListFilesR ( const std::string& path, const std::string & exten, bool addPath )\r
{\r
- std::vector<std::string> list = Directory::GetListFiles(directoryName, addPath);\r
+ std::vector<std::string> list = Directory::GetListFiles(path, exten, addPath);\r
\r
- std::vector<std::string> dirs = Directory::GetListFolders(directoryName, addPath);\r
+ std::vector<std::string> dirs = Directory::GetListFolders(path, exten, addPath);\r
\r
std::vector<std::string>::const_iterator it;\r
for (it = dirs.begin(); it != dirs.end(); ++it)\r
{\r
- std::vector<std::string> cl = Directory::GetListFiles(*it, addPath);\r
+ std::vector<std::string> cl = Directory::GetListFiles(*it, exten, addPath);\r
list.insert(list.end(), cl.begin(), cl.end());\r
}\r
\r