Advertisement
CosminVarlan

Untitled

Nov 27th, 2019
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.42 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <dirent.h>
  3. #include <string.h>
  4. #include <iostream>
  5.  
  6. using namespace std;
  7.  
  8. char nume_dir[1024]="C://";
  9.  
  10.  
  11.  
  12. int listare(char cale[])
  13. {
  14.      struct dirent *de;  // Pointer for directory entry
  15.     // opendir() returns a pointer of DIR type.
  16.     DIR *dr = opendir(cale);
  17.     if (dr == NULL)  // opendir returns NULL if couldn't open directory
  18.     {
  19.         printf("Could not open current directory" );
  20.         return 0;
  21.     }
  22.     // Refer http://pubs.opengroup.org/onlinepubs/7990989775/xsh/readdir.html
  23.     // for readdir()
  24.     while ((de = readdir(dr)) != NULL)
  25.     {
  26.         printf("%s\n", de->d_name);
  27.         char cale_noua[1024]="";
  28.         strcpy(cale_noua,cale);
  29.         strcat(cale_noua,de->d_name);
  30.         strcat(cale_noua,"//");
  31.     }
  32.     closedir(dr);
  33. }
  34.  
  35. int searchFile(char cale[], char numefis[])
  36. {
  37.     //cout <<"Caut in: "<< cale << endl;
  38.     struct dirent *de;
  39.  
  40.     DIR *dr = opendir(cale);
  41.     if (dr != NULL)
  42.     {
  43.         while ((de = readdir(dr)) != NULL)
  44.         {
  45.             if (strcmp(de->d_name, ".")==0) continue;
  46.             if (strcmp(de->d_name, "..")==0) continue;
  47.  
  48.             if (strcmp(de->d_name, numefis)==0) cout << cale << numefis<< endl;
  49.             //printf("%s\n", de->d_name);
  50.             char cale_noua[1024]="";
  51.             strcpy(cale_noua, cale);
  52.             strcat(cale_noua,de->d_name);
  53.             strcat(cale_noua,"//");
  54.             searchFile(cale_noua, numefis);
  55.         }
  56.     }
  57.     closedir(dr);
  58. }
  59.  
  60.  
  61. int opt=1;
  62. int main(void)
  63. {
  64.     while(opt!=0)
  65.     {
  66.         cout << "\n\n1 = afisare cale\n";
  67.         cout << "2 = afisare director curent\n";
  68.         cout << "3 = change directory\n";
  69.         cin >> opt;
  70.         if (opt==1) cout << nume_dir;
  71.         if (opt==2) listare(nume_dir);
  72.         if (opt==3)
  73.         {
  74.             char new_dir[255];
  75.             cin.get();
  76.             cin.get(new_dir,255);
  77.  
  78.             if (strcmp(new_dir,"..")==0 && strcmp(nume_dir,"C://")!=0)
  79.             {
  80.                 nume_dir[strlen(nume_dir)-1]=0;
  81.                 nume_dir[strlen(nume_dir)-1]=0;
  82.                 while(nume_dir[strlen(nume_dir)-1]!='/') nume_dir[strlen(nume_dir)-1]=0;
  83.             }
  84.             else
  85.             {
  86.                 strcat(nume_dir, new_dir);
  87.                 strcat(nume_dir, "//");
  88.             }
  89.         }
  90.         if (opt==4)
  91.             searchFile(nume_dir, "test.txt");
  92.     }
  93.     return 0;
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement