improved some methods in the Directory class
authorAndrey Morozov <no@email>
Tue, 4 Oct 2011 16:46:55 +0000 (16:46 +0000)
committerAndrey Morozov <no@email>
Tue, 4 Oct 2011 16:46:55 +0000 (16:46 +0000)
modules/contrib/include/opencv2/contrib/contrib.hpp
modules/contrib/src/inputoutput.cpp

index ae86bd0..d5ec5ef 100644 (file)
@@ -609,9 +609,9 @@ namespace cv
        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 );
     };
 }
 
index 1f29697..640180d 100644 (file)
 \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
@@ -35,7 +35,7 @@ namespace cv
                                                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
@@ -62,16 +62,16 @@ namespace cv
                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
@@ -85,7 +85,7 @@ namespace cv
                                                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
@@ -113,16 +113,16 @@ namespace cv
                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