Comment puis-je compter le nombre de fichiers dans un répertoire à l'aide de boost::filesystem?
Je me suis donné un coup de boost::filesystem::chemin d'accès. Est-il un moyen rapide pour obtenir le nombre de fichiers dans le répertoire pointé par le chemin?
Avez-vous essayé le simple_ls exemple de tutoriel: boost.org/doc/libs/1_41_0/libs/filesystem/example/simple_ls.cpp Comment est-ce que ne pas répondre à vos exigences?
De manière récursive ou tout simplement dans le répertoire?
Avez-vous lu sur le répertoire itérateur? boost.org/doc/libs/1_36_0/libs/filesystem/doc/...
double possible de C++ - Charge tous les nom de fichier + le nombre de fichiers dans un répertoire courant + filtre extension de fichier
Pas de manière récursive, mais c'est aussi intereseting. @Krill, j'ai cherché quelque chose de spécifique pour stimuler mais n'ai pas trouvé celui-là. J'ai fait une recherche et tout!
De manière récursive ou tout simplement dans le répertoire?
Avez-vous lu sur le répertoire itérateur? boost.org/doc/libs/1_36_0/libs/filesystem/doc/...
double possible de C++ - Charge tous les nom de fichier + le nombre de fichiers dans un répertoire courant + filtre extension de fichier
Pas de manière récursive, mais c'est aussi intereseting. @Krill, j'ai cherché quelque chose de spécifique pour stimuler mais n'ai pas trouvé celui-là. J'ai fait une recherche et tout!
OriginalL'auteur Brynn Mahsman | 2011-05-18
Vous devez vous connecter pour publier un commentaire.
Voici one-liner dans la Norme C++:
int cnt = std::count_if( directory_iterator(the_path), directory_iterator(), static_cast<bool(*)(const path&)>(is_regular_file));
?Bonne note. Bien sûr, vous pouvez passer à la
directory_entry
à l'autonomeis_regular_file
fonction. Et l'appel dedirectory_entry::path()
va se produire de façon implicite. Je vais mettre à jour la réponse.one-liner dans la Norme C++??? Ressemble à un paquebot en Boost qui n'est pas Standard C++.
une ligne est std::count_if. boost est utilisé ici uniquement parce que l'OP a demandé à propos de boost::filesystem::chemin d'accès.
OriginalL'auteur Kirill V. Lyadvinsky
Vous pouvez parcourir les fichiers dans un répertoire avec:
Ou de manière récursive:
Vous pouvez trouver quelques exemples simples ici.
OriginalL'auteur Adrian
Il n'aurait même pas fait cela avant, je l'ai corrigé. 🙂
Lindley, Avez-vous essayé de compiler ce?
Cette? Oui. Ce que j'avais avant? Pas de.
Bien sûr, cela nécessite de votre compilateur pour prendre en charge les lambdas.
OriginalL'auteur Benjamin Lindley