By means of a regular expression it is possible to traverse the directory selectively. That is, only the file names matching the regular expression will be returned. Note that the regular expression is a true regular expression (as defined by class Regex and not a file expression as used in shells. Thus to get all .cc files, one has to specify ".*\.cc" and not "*.cc".
The File class can be used to determine if a file represents a symlink, directory or regular file.
Directory dir("testdir"); // Get all .cc files. // Note that Regex is a true regular expression and not a // simplified file expression (like *.cc) as used in shells. DirectoryIterator dirIter(dir, ".*.\cc"); while (!dirIter.pastEnd()){ cout << dirIter.name() << endl; dirIter++; }
Construct the iterator for the given directory. All entries (except . and ..) will be traversed. It positions the iterator on the first entry.
Construct the iterator for the given directory. All entries matching the regular expression will be traversed. It positions the iterator on the first entry.
Copy constructor (copy semantics). The iterator will be positioned at the beginning.
Assignment (copy semantics). The iterator will be positioned at the beginning.
Position on the next matching entry in the directory.
An exception is thrown if the iterator is already past the end.
Returns the file name at the current position.
An exception is thrown if the iterator is already past the end.
Returns a File object for the file at the current position.
Note that this adds the path of the directory to get the
correct path for the file.
An exception is thrown if the iterator is already past the end.
Reposition the directory stream on the first entry.
Checks if the iterator is past the end.