void get_unique_filenames_under_dir(const std::string& sdir, std::map<std::string, std::string>* file_map, const std::string& prefix) { if(sdir.size() > 1024) { return; } std::string dir(sdir); if(dir[dir.length()-1] == '/') { dir = dir.substr(0,dir.length()-1); } std::vector<std::string> files; std::vector<std::string> dirs; get_files_in_dir(dir, &files, &dirs); //LOG("get_unique_filenames_under_dir(): " << dir); for(std::vector<std::string>::const_iterator i = files.begin(); i != files.end(); ++i) { (*file_map)[prefix + *i] = dir + "/" + *i; //LOG("unique: " << *i << " : " << (*file_map)[*i]); } for(std::vector<std::string>::const_iterator i = dirs.begin(); i != dirs.end(); ++i) { //LOG("get_unique_filenames_under_dir(): " << (dir + "/" + *i) << " : " << *i); get_unique_filenames_under_dir(dir + "/" + *i, file_map, prefix); } }
void get_unique_filenames_under_dir(const std::string& dir, std::map<std::string, std::string>* file_map, const std::string& prefix) { if(dir.size() > 1024) { return; } std::vector<std::string> files; std::vector<std::string> dirs; get_files_in_dir(dir, &files, &dirs); for(std::vector<std::string>::const_iterator i = files.begin(); i != files.end(); ++i) { (*file_map)[prefix + *i] = dir + "/" + *i; } for(std::vector<std::string>::const_iterator i = dirs.begin(); i != dirs.end(); ++i) { get_unique_filenames_under_dir(dir + "/" + *i, file_map, prefix); } }