#include <iostream>    // `cin', `cout' et `cerr'.
#include <string>      // Chaînes de caractères de la STL.
#include "directory.h" // Bibliothèque de parcours des répertoires.

using namespace std ;

size_t nombre_fichiers = 0 ;

void
visiter_et_compter(const string & chemin)
{
	cout << "Visite du répertoire : " << chemin << endl ;
	Directory directory(chemin) ;
	if ( ! directory ) {
		cerr << "Impossible d'ouvrir en lecture le répertoire `" << chemin << "'." << endl ;
		exit(1) ; }
	string nom ;
	while ( getentry(directory, nom) ) {
		if ( (nom == ".") || (nom == "..") ) {
			continue ; }
		if ( isdirectory(chemin + '/' + nom) ) {
			visiter_et_compter(chemin + '/' + nom) ; } // Appel récursif.
		else {
			// Ne pas dépasser le début de chaîne !
			string extension(nom.end()-min(size_t(4), nom.size()), nom.end()) ;
			if ( (extension == ".tmp") || (extension == ".TMP") ) {
				++ nombre_fichiers ; } } }
}
int
main()
{
	visiter_et_compter("c:/DocTeX") ;
	cout << "Nombre de fichiers d'extension `tmp'\t" << nombre_fichiers << endl ;

}
