glibmm: Glib::Dir Class Reference

Utility class representing an open directory. More...

#include <glibmm/fileutils.h>

Public Types

using iterator = DirIterator
 
using const_iterator = DirIterator
 

Public Member Functions

 Dir (const std::string& path)
 Opens a directory for reading. More...

 
 Dir (const Dir&)=delete
 
Diroperator= (const Dir&)=delete
 
 ~Dir ()
 Closes the directory and deallocates all related resources. More...

 
std::string read_name ()
 Retrieves the name of the next entry in the directory. More...

 
void rewind ()
 Resets the directory. More...

 
void close ()
 Closes the directory and deallocates all related resources. More...

 
DirIterator begin ()
 Get the begin of an input iterator sequence. More...

 
DirIterator end ()
 Get the end of an input iterator sequence. More...

 

Detailed Description

Utility class representing an open directory.

It's highly recommended to use the iterator interface. With iterators, reading an entire directory into a STL container is really easy:

Glib::Dir dir (directory_path);
std::list<std::string> entries (dir.begin(), dir.end());
Note
The encoding of the directory entries isn't necessarily UTF-8. Use Glib::filename_to_utf8() if you need to display them.

Member Typedef Documentation

Constructor & Destructor Documentation

Glib::Dir::Dir ( const std::string path)
explicit

Opens a directory for reading.

The names of the files in the directory can then be retrieved using read_name().

Parameters
pathThe path to the directory you are interested in.
Exceptions
Glib::FileError
Glib::Dir::Dir ( const Dir )
delete
Glib::Dir::~Dir ( )

Closes the directory and deallocates all related resources.

Member Function Documentation

DirIterator Glib::Dir::begin ( )

Get the begin of an input iterator sequence.

Returns
An input iterator pointing to the first directory entry.
void Glib::Dir::close ( )

Closes the directory and deallocates all related resources.

Note that close() is implicitely called by ~Dir(). Thus you don't need to call close() yourself unless you want to close the directory before the destructor runs.

DirIterator Glib::Dir::end ( )

Get the end of an input iterator sequence.

Returns
An input iterator pointing behind the last directory entry.
Dir& Glib::Dir::operator= ( const Dir )
delete
std::string Glib::Dir::read_name ( )

Retrieves the name of the next entry in the directory.

The '.' and '..' entries are omitted.

Returns
The entry's name or "" if there are no more entries.
See also
begin(), end()
void Glib::Dir::rewind ( )

Resets the directory.

The next call to read_name() will return the first entry again.