vector<Mat> FilesTools::getImages(string path) { // read images filenames vector<string> filenames; WIN32_FIND_DATA fd; HANDLE hFind = ::FindFirstFile(string2wchar_t(path + "\\*.jpg"), &fd); if (hFind != INVALID_HANDLE_VALUE) { do { if ( !(fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) filenames.push_back(path + "\\" + wchar_t2string(fd.cFileName)); } while (::FindNextFile(hFind, &fd)); ::FindClose(hFind); } // create Mat list vector<Mat> images; for(unsigned int i = 0; i < filenames.size(); i ++) { string filename = filenames[i]; images.push_back(getImage(filename)); } return images; }
std::vector<std::string> genericFeatures::listFiles ( std::string dir ) { WIN32_FIND_DATA FindFileData; wchar_t * FileName = string2wchar_t(dir); HANDLE hFind = FindFirstFile(FileName, &FindFileData); std::vector<std::string> listFileNames; listFileNames.push_back(wchar_t2string(FindFileData.cFileName)); while (FindNextFile(hFind, &FindFileData)) { listFileNames.push_back(wchar_t2string(FindFileData.cFileName)); } return listFileNames; }
vector<string> listFilesInDirectory(string directoryName) { #ifdef _WIN32 WIN32_FIND_DATA FindFileData; wchar_t * FileName = string2wchar_t(directoryName); HANDLE hFind = FindFirstFile(FileName, &FindFileData); vector<string> listFileNames; if (GetLastError() != ERROR_FILE_NOT_FOUND) { listFileNames.push_back(wchar_t2string(FindFileData.cFileName)); } while (FindNextFile(hFind, &FindFileData)) listFileNames.push_back(wchar_t2string(FindFileData.cFileName)); FindClose(hFind); return listFileNames; #elif __linux__ directoryName = directoryName.substr(0, directoryName.length() - 3); vector<string> listFileNames; DIR *dp; struct dirent *dirp; if((dp = opendir(directoryName.c_str())) == NULL) { cout << "Error(" << errno << ") opening " << directoryName << endl; return listFileNames; } while ((dirp = readdir(dp)) != NULL) { listFileNames.push_back(string(dirp->d_name)); } closedir(dp); return listFileNames; #endif //_WIN32 }