Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <dirent.h>
- #include <string.h>
- #include <iostream>
- using namespace std;
- char nume_dir[1024]="C://";
- int listare(char cale[])
- {
- struct dirent *de; // Pointer for directory entry
- // opendir() returns a pointer of DIR type.
- DIR *dr = opendir(cale);
- if (dr == NULL) // opendir returns NULL if couldn't open directory
- {
- printf("Could not open current directory" );
- return 0;
- }
- // Refer http://pubs.opengroup.org/onlinepubs/7990989775/xsh/readdir.html
- // for readdir()
- while ((de = readdir(dr)) != NULL)
- {
- printf("%s\n", de->d_name);
- char cale_noua[1024]="";
- strcpy(cale_noua,cale);
- strcat(cale_noua,de->d_name);
- strcat(cale_noua,"//");
- }
- closedir(dr);
- }
- int searchFile(char cale[], char numefis[])
- {
- //cout <<"Caut in: "<< cale << endl;
- struct dirent *de;
- DIR *dr = opendir(cale);
- if (dr != NULL)
- {
- while ((de = readdir(dr)) != NULL)
- {
- if (strcmp(de->d_name, ".")==0) continue;
- if (strcmp(de->d_name, "..")==0) continue;
- if (strcmp(de->d_name, numefis)==0) cout << cale << numefis<< endl;
- //printf("%s\n", de->d_name);
- char cale_noua[1024]="";
- strcpy(cale_noua, cale);
- strcat(cale_noua,de->d_name);
- strcat(cale_noua,"//");
- searchFile(cale_noua, numefis);
- }
- }
- closedir(dr);
- }
- int opt=1;
- int main(void)
- {
- while(opt!=0)
- {
- cout << "\n\n1 = afisare cale\n";
- cout << "2 = afisare director curent\n";
- cout << "3 = change directory\n";
- cin >> opt;
- if (opt==1) cout << nume_dir;
- if (opt==2) listare(nume_dir);
- if (opt==3)
- {
- char new_dir[255];
- cin.get();
- cin.get(new_dir,255);
- if (strcmp(new_dir,"..")==0 && strcmp(nume_dir,"C://")!=0)
- {
- nume_dir[strlen(nume_dir)-1]=0;
- nume_dir[strlen(nume_dir)-1]=0;
- while(nume_dir[strlen(nume_dir)-1]!='/') nume_dir[strlen(nume_dir)-1]=0;
- }
- else
- {
- strcat(nume_dir, new_dir);
- strcat(nume_dir, "//");
- }
- }
- if (opt==4)
- searchFile(nume_dir, "test.txt");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement