Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <dirent.h>
- #include <vector>
- #include <sys/stat.h>
- using namespace std;
- bool isdir(string path)
- {
- struct stat sb;
- if(stat(path.c_str(), &sb) == 0 && S_ISDIR(sb.st_mode))
- return true;
- else return false;
- }
- void lsdir(string path, bool recursiveListDir, bool searchHiddenFiles = false)
- {
- vector<string> files;
- DIR *d;
- struct dirent *dir;
- d = opendir(path.c_str());
- if(d)
- {
- auto cond = dir = readdir(d);
- while(cond != NULL)
- {
- string fn = dir->d_name;
- if (!recursiveListDir)
- {
- if(!searchHiddenFiles)
- {
- if(fn[0] != '.')
- files.push_back(fn);
- }
- else files.push_back(fn);
- }
- else
- {
- if(!searchHiddenFiles)
- {
- if(isdir(fn))
- if(fn[0] != '.')
- files.push_back(fn);
- }
- else
- if(isdir(fn)) files.push_back(fn);
- }
- }
- closedir(d);
- }
- if (recursiveListDir)
- {
- for(long unsigned int recursiveCounter = 0;
- recursiveCounter < files.size(); recursiveCounter++)
- lsdir(files[recursiveCounter], false, searchHiddenFiles);
- }
- else for(int filesIterator = 0; filesIterator < files.size();
- filesIterator++) cout << files[filesIterator];
- }
- int main()
- {
- string pathToSearch = ".";
- lsdir(pathToSearch, false);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement