00001
00002
00003
00004
00005
00006
00007
00008 #include <dirent.h>
00009 #include <strings.h>
00010 #include <SUM.h>
00011
00012 int rmdirs(char *wd, char *root)
00013 {
00014 char *cptr;
00015 int i;
00016 DIR *dirp;
00017 char rmstr[MAXSTR];
00018 char rmcmd[MAXSTR];
00019
00020 strcpy(rmstr, wd);
00021 if(!(cptr=(char *)rindex(rmstr, '/')))
00022 return(1);
00023 if(!strcmp(cptr+1, ""))
00024 *cptr=(char)NULL;
00025 sprintf(rmcmd, "rm -rf %s\n", rmstr);
00026 if(system(rmcmd))
00027 return(1);
00028 cptr=(char *)rindex(rmstr, '/');
00029 *cptr=(char)NULL;
00030 while(strstr(rmstr, root)) {
00031 if(!(dirp=opendir(rmstr))) return(1);
00032 i=0;
00033 while(readdir(dirp)) i++;
00034 closedir(dirp);
00035 if(i == 2) {
00036 sprintf(rmcmd, "rm -rf %s\n", rmstr);
00037 if(system(rmcmd))
00038 return(1);
00039 }
00040 else
00041 break;
00042 cptr=(char *)rindex(rmstr, '/');
00043 *cptr=(char)NULL;
00044 }
00045 return(0);
00046 }