// FileMgr.cpp - Collects file specifications from directory tree #include "FileMgr.h" #include void FileMgr::search() { find(path_); } void FileMgr::find(const std::string& path) { //std::cout << "\n Path is: " << path; for (auto patt : patterns_) { std::vector files = FileSystem::Directory::getFiles(path, patt); for (auto f : files) { //std::cout << "\n file is: " << f; store_.save(f); } std::vector dirs = FileSystem::Directory::getDirectories(path); // remove "." and ".." from dirs auto iter = std::find(std::begin(dirs), std::end(dirs), "."); if (iter != std::end(dirs)) { dirs.erase(iter); } iter = std::find(std::begin(dirs), std::end(dirs), ".."); if (iter != std::end(dirs)) { dirs.erase(iter); } for (auto d : dirs) { find(d); } } } #ifdef TEST_FILEMGR int main() { std::cout << "\n Testing FileMgr class"; std::cout << "\n =======================\n"; DataStore ds; FileMgr fm(".", ds); fm.addPattern("*.h"); fm.addPattern("*.cpp"); fm.addPattern("*.obj"); fm.search(); for (auto item : fm) { std::cout << "\n " << item; } std::cout << "\n\n"; return 0; } #endif