Je veux compter le nombre de fichiers dans le répertoire courant et charger tous les noms de fichiers dans le tableau. Si possible, je veux savoir comment filtrer l'extension de fichier égalementC++ - Charger tous les noms de fichiers + compter le nombre de fichiers dans un répertoire courant + extension de fichier de filtre
4
A
Répondre
8
Lien le programme suivant avec -lboost_filesystem
#include <iostream>
#include <string>
#include <vector>
#include <boost/algorithm/string/case_conv.hpp>
#include <boost/filesystem.hpp>
int main(int argc, char ** argv)
{
std::string ext = ".jpg";
std::vector<std::string> files;
for (boost::filesystem::directory_iterator it(boost::filesystem::initial_path());
it != boost::filesystem::directory_iterator(); ++it)
{
if (boost::filesystem::is_regular_file(it->status()) &&
boost::algorithm::to_lower_copy(it->path().extension()) == ext)
{
files.push_back(it->path().filename());
}
}
std::cout << "Number of files: " << files.size() << std::endl;
std::copy(files.begin(), files.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
return 0;
}
0
La réponse est Boost.Filesystem, plus précisément le directory_iterator.
génial :) Je résoudre mon problème avec dirent.h bibliothèque, mais cela est une grande référence à boost.FileSystem. Tyvm :) –