int main(int c, char **v) { char buf[1024]; CArgs args; char *dirName = "."; char *catagory=0; char path[F8_MAX_PATH]; BEGIN_ARGS ARG("-d:", dirName, "char *", "specify operation directory.") ARG("-c:", catagory, "char *", "specify library catagory[dir name]") END_ARGS if(process_args_1(c, v)){ print_usage_1(); return -1; } if(!SetCurrentDirectory(dirName)){ utils_error("Cannot change directory to ``%s''.\n", dirName); return -1; } GetCurrentDirectory(sizeof(buf), buf); parse_arg_ex(buf, &args, ":/\\"); if(!catagory){ catagory = args.argv[args.argc-1]; } GetCurrentDirectory(sizeof(path), path); printf( "Making library database in ``%s'', catagory ``%s''\n", path, catagory ); fdb = fopen("f8.dir", "w"); if(!fdb){ return -1; } fprintf(fdb, "[library]\n"); fprintf(fdb, "catagory=%s\n", catagory); enumerate_files( ".", "*.blk", _e_file, 0, 0); fprintf(fdb, "count=%d\n", count); fclose(fdb); printf("%d entries added.\n", count); return 0; }
inline THREAD_SAFE int idaapi enumerate_system_files( char *answer, size_t answer_size, const char *subdir, const char *fname, int (idaapi*func)(const char *file,void *ud), void *ud) { return enumerate_files(answer, answer_size, idadir(subdir), fname, func, ud); }
int main(int argc, char** argv) { if (argc != 2) { std::cerr << "invalid argument(s). there is a argument that archived directory name.\n"; return 1; } try { auto const& files = enumerate_files(argv[1]); std::copy(files.begin(), files.end(), std::ostream_iterator<fs::path>(std::cout, "\n")); std::string archive_name{argv[1]}; archive_name += ".bin"; create_archive_file(files, archive_name); } catch (fs::filesystem_error const& e) { std::cerr << e.what() << " code " << e.code() << std::endl; } catch (...) { std::cerr << "unknown error\n"; } }
int update_index(const char *dir, GDBM_FILE db) { return enumerate_files(dir, file_extensions, index_file, db); }