/* backdir * * Small example application which lists the first 10 files of a directory and * its subdirectories and then iterates back to the first file. * * It demonstrates how to use the operator-- of the filesystem::file_iterator. */ /* Note: Do not include config.h in your own programs. See README. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include using namespace std ; int main (int argc, char** argv) { if (argc != 2) { cerr << "Usage: backdir /some/directory" << endl ; return -1 ; } string dir (argv[1]) ; filesystem::file_iterator<> i (dir); const int maxcount = 10 ; for (int c = 0; (i != i.end ()) && (c < maxcount); c++, i++) { // This calls a special output operator for file_t ;-) cout << c << " " << (*i) << endl ; } if (i == i.end ()) { cerr << endl << "Sorry, directory has less than " << maxcount << " files." << endl ; return 1 ; } cout << "---" << endl ; i-- ; for (int c = (maxcount - 1) ; (i != i.end ()) && (c >= 0); c--, i--) { cout << c << " " << (*i) << endl ; } if (i != i.end ()) { // This should not occure in this scenario ;-) cerr << "Strange, we are not yet at the beginning..." << endl ; return 1 ; } return 0 ; }