Advertisement
techno-

cmdList

Oct 21st, 2022
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.51 KB | None | 0 0
  1. void cmdList(){
  2.  
  3.  
  4.     char ruta[PATH_MAX];
  5.     int flagHid=0,flagLong=0, flagAcc=0, flagReca=0, flagRecb=0; //flags para detectar las opciones que se pasan
  6.  
  7.  
  8.     DIR *d;
  9.     struct dirent *dirent;
  10.     getcwd(ruta, PATH_MAX);
  11.     strcat(ruta, "/");
  12.     strcat(ruta, trozos[numtrozos-1]);
  13.  
  14.     if(numtrozos==1)
  15.         cmdCarpeta();
  16.  
  17.     if(numtrozos==2){
  18.  
  19.  
  20.         if((d=opendir(ruta)) == NULL){perror("opendir"); return;}
  21.         printf("************%s\n",trozos[numtrozos-1]);
  22.         while((dirent = readdir(d))!= NULL){
  23.             if(dirent->d_name[0] != '.'){
  24.             printf("%s\n", dirent->d_name);
  25.         }
  26.        }
  27.     }
  28.  
  29.  
  30.     if(numtrozos>2){
  31.  
  32.  
  33.  
  34.         //Obtenemos los flags que se pasan
  35.         for(int i = 1; i < numtrozos && trozos[i][0] == '-' ; i++){
  36.             if(strcmp(trozos[i],"-hid")==0) flagHid = 1;
  37.             else if(strcmp(trozos[i], "-long") == 0) flagLong = 1;
  38.             else if(strcmp(trozos[i], "-acc") == 0) flagAcc = 1;
  39.             else if(strcmp(trozos[i], "-reca") == 0) flagReca = 1;
  40.             else if(strcmp(trozos[i], "-recb") == 0) flagRecb = 1;
  41.         }
  42.  
  43.  
  44.     if((d=opendir(ruta)) == NULL){perror("opendir"); return;}
  45.  
  46.  
  47.  
  48.         if(flagAcc==1 && flagLong==0 && flagHid==0){
  49.             printf("************%s\n",trozos[numtrozos-1]);
  50.             while((dirent = readdir(d))!= NULL){
  51.             if(dirent->d_name[0] != '.'){
  52.             cmdStat2(dirent->d_name,0,1,ruta,0);
  53.         }
  54.        }
  55.     }
  56.  
  57.         if(flagAcc==1 && flagLong==0 && flagHid==1){
  58.             printf("************%s\n",trozos[numtrozos-1]);
  59.             while((dirent = readdir(d))!= NULL){
  60.             cmdStat2(dirent->d_name,0,1,ruta,0);
  61.        }
  62.     }
  63.  
  64.         if(flagHid==1 && flagLong==0 && flagAcc==0 && flagReca==0 && flagRecb==0){
  65.             printf("************%s\n",trozos[numtrozos-1]);
  66.             while((dirent = readdir(d))!= NULL){
  67.             printf("%s\n", dirent->d_name);
  68.         }
  69.       }
  70.  
  71.       if(flagLong==1 && flagHid == 0 && flagAcc==0 && flagReca==0 && flagRecb==0){
  72.  
  73.  
  74.           printf("************%s\n",trozos[numtrozos-1]);
  75.             while((dirent = readdir(d))!= NULL){
  76.             if(dirent->d_name[0] != '.'){
  77.             cmdStat2(dirent->d_name,1,0,ruta,0);
  78.         }
  79.        }
  80.       }
  81.  
  82.  
  83.       if(flagLong==1 && flagHid == 1 && flagReca ==0 && flagRecb==0){
  84.           printf("************%s\n",trozos[numtrozos-1]);
  85.             while((dirent = readdir(d))!= NULL){
  86.             cmdStat2(dirent->d_name,1,0,ruta,0);
  87.        }
  88.       }
  89.  
  90.  
  91.       if(flagReca==1){
  92.         cmdListaREC(trozos[numtrozos-1],0,flagHid, flagLong);
  93.       }else if(flagRecb==1){
  94.         cmdListaREC(trozos[numtrozos-1],1,flagHid, flagLong);
  95.       }
  96.  
  97.  
  98.     }
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement