/** * Scan for files with the given extention in the given search path. * @param extension the extension of files to search for. * @param sd the sub directory to search in. * @param tars whether to search in the tars too. * @param recursive whether to search recursively * @return the number of found files, i.e. the number of times that * AddFile returned true. */ uint FileScanner::Scan(const char *extension, Subdirectory sd, bool tars, bool recursive) { Searchpath sp; char path[MAX_PATH]; TarFileList::iterator tar; uint num = 0; FOR_ALL_SEARCHPATHS(sp) { FioAppendDirectory(path, MAX_PATH, sp, sd); num += ScanPath(this, extension, path, strlen(path), recursive); } if (tars) { FOR_ALL_TARS(tar) { num += ScanTar(this, extension, tar); } } return num; }
/** * Scan for files with the given extention in the given search path. * @param extension the extension of files to search for. * @param sd the sub directory to search in. * @param tars whether to search in the tars too. * @param recursive whether to search recursively * @return the number of found files, i.e. the number of times that * AddFile returned true. */ uint FileScanner::Scan(const char *extension, Subdirectory sd, bool tars, bool recursive) { Searchpath sp; char path[MAX_PATH]; TarFileList::iterator tar; uint num = 0; FOR_ALL_SEARCHPATHS(sp) { /* Don't search in the working directory */ if (sp == SP_WORKING_DIR && !_do_scan_working_directory) continue; FioAppendDirectory(path, MAX_PATH, sp, sd); num += ScanPath(this, extension, path, strlen(path), recursive); } if (tars) { FOR_ALL_TARS(tar) { num += ScanTar(this, extension, tar); } } return num; }