Guest User

Untitled

a guest
Apr 23rd, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.10 KB | None | 0 0
  1. #include <dirent.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <unistd.h>
  5. #include <sys/stat.h>
  6.  
  7. void adentro_de_esta_ruta(char * ruta_a_revisar, char * elemento){
  8.     DIR * directorio;
  9.     struct dirent * registro_directorio;
  10.     char ruta_auxiliar[2000];
  11.     char ruta_auxiliar2[2000];
  12.     strcpy(ruta_auxiliar2, ruta_a_revisar);
  13.     strcat(ruta_a_revisar, "/");
  14.     strcat(ruta_a_revisar, elemento);
  15.     strcpy(ruta_auxiliar, ruta_a_revisar);
  16.     directorio = opendir(ruta_a_revisar);
  17.     while((registro_directorio = readdir(directorio)) != NULL){
  18.         if((strcmp(".", registro_directorio->d_name) == 0) || (strcmp("..", registro_directorio->d_name) == 0)){
  19.             continue;
  20.         }else{
  21.             strcat(ruta_a_revisar, "/");
  22.             strcat(ruta_a_revisar, registro_directorio->d_name);
  23.             if(chdir(ruta_a_revisar) == 0){
  24.                 chdir(ruta_auxiliar);
  25.                 adentro_de_esta_ruta(ruta_auxiliar, registro_directorio->d_name);
  26.                 strcpy(ruta_auxiliar, ruta_auxiliar2);
  27.             }else{
  28.                 strcpy(ruta_a_revisar, ruta_auxiliar);
  29.             }
  30.         }
  31.         strcpy(ruta_auxiliar, ruta_auxiliar2);
  32.     }
  33.     closedir(directorio);
  34. }
  35.  
  36. int main(int agrc, char ** argv){
  37.     DIR * directorio;
  38.     struct dirent * registro_directorio;
  39.     char ruta_actual[2000];
  40.     char ruta_auxiliar[2000];
  41.     char ruta_procesar[2000];
  42.     char ruta_auxiliar2[2000];
  43.     strcpy(ruta_actual, (char*)getenv("PWD"));
  44.     strcpy(ruta_procesar, argv[1]);
  45.     strcat(ruta_actual, "/");
  46.     strcat(ruta_actual, ruta_procesar);
  47.     strcpy(ruta_auxiliar, ruta_actual);
  48.     strcpy(ruta_auxiliar2, ruta_actual);
  49.     directorio = opendir(ruta_actual);
  50.     while((registro_directorio = readdir(directorio)) != NULL){
  51.         if((strcmp(".", registro_directorio->d_name) == 0) || (strcmp("..", registro_directorio->d_name) == 0)){
  52.             continue;
  53.         }else{
  54.             strcat(ruta_actual, "/");
  55.             strcat(ruta_actual, registro_directorio->d_name);
  56.             if(chdir(ruta_actual) == 0){
  57.                 chdir(ruta_auxiliar);
  58.                 adentro_de_esta_ruta(ruta_auxiliar, registro_directorio->d_name);
  59.                 strcpy(ruta_auxiliar, ruta_auxiliar2);
  60.             }else{
  61.                 strcpy(ruta_actual, ruta_auxiliar);
  62.             }
  63.         }
  64.         strcpy(ruta_auxiliar, ruta_auxiliar2);
  65.     }
  66.     closedir(directorio);
  67.     return 0;
  68. }
Add Comment
Please, Sign In to add comment