| 1 | chuckv | 2930 |  | 
| 2 |  |  | #include <stdio.h> | 
| 3 |  |  | #include <string.h> | 
| 4 |  |  | #include <dirent.h> | 
| 5 |  |  | #include <sys/param.h> | 
| 6 |  |  | #include <sys/stat.h> | 
| 7 | chuckv | 2933 | #include "getfile.h" | 
| 8 | chuckv | 2930 |  | 
| 9 |  |  | struct dirent   **namelist; | 
| 10 |  |  | char* mydir; | 
| 11 | chuckv | 2933 | int mynode; | 
| 12 |  |  | //int nfiles(char* dirname[MAXPATHLEN + 1]); | 
| 13 | chuckv | 2930 |  | 
| 14 | chuckv | 2943 | int amber_rst(const struct dirent * dir); | 
| 15 |  |  | //int alphasort(struct direct **d1, struct direct **d2); | 
| 16 | chuckv | 2930 |  | 
| 17 | chuckv | 2933 | int nfiles(char* dirname[MAXPATHLEN + 1],int extension) | 
| 18 | chuckv | 2930 | { | 
| 19 |  |  | int nfiles; | 
| 20 |  |  | mydir =  (char*)dirname; | 
| 21 | chuckv | 2933 | mynode = extension; | 
| 22 | chuckv | 2943 | nfiles = scandir(".", &namelist, amber_rst, alphasort); | 
| 23 | chuckv | 2930 | return(nfiles); | 
| 24 |  |  | } | 
| 25 |  |  |  | 
| 26 | chuckv | 2943 | char* getfilename(int which) { | 
| 27 |  |  | char* fname; | 
| 28 | chuckv | 2930 | int i; | 
| 29 |  |  |  | 
| 30 | chuckv | 2943 | fname = namelist[which]->d_name; | 
| 31 |  |  | return fname; | 
| 32 | chuckv | 2933 | /* | 
| 33 | chuckv | 2930 | for (i = 0; i < strlen(filename); i++) { | 
| 34 |  |  | fname[i] = filename[i]; | 
| 35 |  |  | } | 
| 36 |  |  | for (i = strlen(filename); i < flen; i++) { | 
| 37 |  |  | fname[i] = 0; | 
| 38 |  |  | } | 
| 39 | chuckv | 2933 | */ | 
| 40 | chuckv | 2930 | } | 
| 41 |  |  |  | 
| 42 |  |  | int | 
| 43 |  |  | amber_rst(const struct dirent * dir) | 
| 44 |  |  | { | 
| 45 |  |  |  | 
| 46 |  |  | struct stat     buf; | 
| 47 |  |  | char            filename[MAXPATHLEN + 1]; | 
| 48 | chuckv | 2956 | size_t namelen; | 
| 49 | chuckv | 2930 | char            *base, *exten; | 
| 50 |  |  | char            *dot = "."; | 
| 51 | chuckv | 2943 | char            extenpattern[5]; | 
| 52 | chuckv | 2956 | char* oldexten; | 
| 53 | chuckv | 2943 | sprintf(filename, "%s/%s",".", dir->d_name); | 
| 54 |  |  |  | 
| 55 | chuckv | 2930 |  | 
| 56 |  |  | if (stat(filename, &buf) != 0) | 
| 57 |  |  | { | 
| 58 |  |  | return (0); | 
| 59 |  |  | } | 
| 60 |  |  |  | 
| 61 |  |  | if (buf.st_mode & S_IFDIR) | 
| 62 |  |  | { | 
| 63 |  |  | return (0); | 
| 64 |  |  | } | 
| 65 |  |  |  | 
| 66 |  |  | sprintf(filename, "%s", dir->d_name); | 
| 67 |  |  | base = (char*)strtok(filename, "."); | 
| 68 | chuckv | 2956 | //namelen = strlen(base); | 
| 69 |  |  | while (base != NULL){ | 
| 70 |  |  | exten = base; | 
| 71 |  |  | base=(char*)strtok(NULL,"."); | 
| 72 |  |  | //      printf("Exten contains: %s\n",exten); | 
| 73 |  |  | } | 
| 74 |  |  | sprintf(extenpattern,"%s%i","node",mynode); | 
| 75 |  |  | //  printf("Exten contains: %s\n",exten); | 
| 76 | chuckv | 2930 |  | 
| 77 | chuckv | 2943 | if (exten!=NULL && !strcasecmp(exten,extenpattern)) | 
| 78 |  |  | { | 
| 79 |  |  | return (1); | 
| 80 |  |  | } | 
| 81 |  |  |  | 
| 82 |  |  | return (0); | 
| 83 |  |  |  | 
| 84 | chuckv | 2930 | } | 
| 85 |  |  |  |