The following small script takes as input an extension and a directory and prints all the files inside that directory that have that extension.
#include < iostream >
#include< stdio.h >
#include< cstdlib >
#include< iostream >
#include< string .h >
#include< fstream >
#include< sstream >
#include< dirent .h >
#include < vector >
// < extension > < directory >
int main(int argc, char *argv[])
{
if(argc!=3)
{
std::cerr << "Too few arguments. Please include the following\n"
<< "<.extension> \n";
return EXIT_FAILURE;
}
std::string dirStr(argv[2]);
std::string extension(argv[1]);
DIR *dir;
struct dirent *ent;
unsigned int count(0);
if ((dir = opendir (dirStr.c_str())) != NULL) {
/* print all the files and directories within directory */
while ((ent = readdir (dir)) != NULL)
{
std::string current(ent->d_name);
if(current.size()>extension.size())
{
std::string ext = current.substr(current.length()-extension.length());
if(ext==extension)
{
std::cout << current << "\n";
count++;
}
}
}
}
std::cout << count << " files with extension " << extension << " found\n";
std::cout << " *** EXIT ***\n";
return EXIT_SUCCESS;
}