Files* scan_vgyro(Params_Template *p) { Devices *ds; if(p->axis!=NONE) { ds = scan_folder(GYROSCOPE,enum_model_length,p->axis); } else { ds = malloc(sizeof(Devices)); ds->num_ds = 0; ds->ds = malloc(sizeof(Device*)); } Files* fs = create_fds(ds); free_ds(ds); return fs; }
void scan_folder(char *dir) { DIR *dp; struct dirent *ep; char *binaryfile; char *sha1; char path[PATH_MAX +1]; char fullpath[PATH_MAX +1]; char msgError[PATH_MAX +1]; dp = opendir(dir); if (dp != NULL) { while (ep = readdir (dp)) { if (ep->d_type != DT_DIR) { if (ep->d_type == DT_REG) { filesProcessed++; loadBar(filesProcessed,totalFiles,50,50); /* printf("%ld-%ld\n", filesProcessed, totalFiles); */ sprintf(fullpath,"%s/%s", dir, ep->d_name); /* write_uri_file(fullpath); */ binaryfile = get_binary_of_file(fullpath); sha1 = get_sha1(binaryfile); /* printf("%s - %s\n", fullpath, sha1); */ } } if (ep->d_type == DT_DIR) { if ((strcmp(ep->d_name, ".") != 0) && (strcmp(ep->d_name, "..") != 0)) { strcpy(path, ""); strcat(path, dir); strcat(path, "/"); strcat(path, ep->d_name); scan_folder(path); } } } (void) closedir (dp); } else { sprintf(msgError,"Could't open the directory - %s", dir); perror(msgError); } }
int main(int argc, char const *argv[]) { if (count_file_in_folder((char*)argv[1]) == 1) { printf("\n\n\033[22;32mOK !"); printf("\n\n\033[22;32mAnalyzed Files: %ld\n\n", totalFiles); /* printf("\n\n\033[22;31mSearching equals..."); */ printf("\033[22;31mSearching equal files...\n\n"); scan_folder((char*)argv[1]); printf("\n\n\033[22;32mOK !"); printf("\n\n\033[22;32mAnalyzed Files: %ld\n", totalFiles); } return 0; }