2
2
<html xmlns="http://www.w3.org/1999/xhtml">
4
4
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
5
6
<title>glibmm: Glib::Dir Class Reference</title>
7
7
<link href="tabs.css" rel="stylesheet" type="text/css"/>
8
<link href="/home/murrayc/checkouts/gnome30/glibmm/docs/doxygen.css" rel="stylesheet" type="text/css" />
8
<script type="text/javascript" src="jquery.js"></script>
9
<script type="text/javascript" src="dynsections.js"></script>
10
<link href="doxygen.css" rel="stylesheet" type="text/css" />
14
<div id="top"><!-- do not remove this div! -->
13
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
17
14
<div id="titlearea">
18
15
<table cellspacing="0" cellpadding="0">
20
17
<tr style="height: 56px;">
23
18
<td style="padding-left: 0.5em;">
24
19
<div id="projectname">glibmm
25
 <span id="projectnumber">2.33.3</span>
20
 <span id="projectnumber">2.33.12</span>
37
<!-- Generated by Doxygen 1.7.5 -->
27
<!-- end header part -->
28
<!-- Generated by Doxygen 1.8.1.1 -->
38
29
<div id="navrow1" class="tabs">
39
30
<ul class="tablist">
40
31
<li><a href="index.html"><span>Main Page</span></a></li>
53
44
<li><a href="functions.html"><span>Class Members</span></a></li>
56
<div id="nav-path" class="navpath">
58
<li class="navelem"><a class="el" href="namespaceGlib.html">Glib</a> </li>
59
<li class="navelem"><a class="el" href="classGlib_1_1Dir.html">Dir</a> </li>
47
<div id="nav-path" class="navpath">
49
<li class="navelem"><a class="el" href="namespaceGlib.html">Glib</a></li><li class="navelem"><a class="el" href="classGlib_1_1Dir.html">Dir</a></li> </ul>
63
52
<div class="header">
64
53
<div class="summary">
65
54
<a href="#pub-types">Public Types</a> |
66
55
<a href="#pub-methods">Public Member Functions</a> </div>
67
56
<div class="headertitle">
68
57
<div class="title">Glib::Dir Class Reference<div class="ingroups"><a class="el" href="group__FileUtils.html">File Utilities</a></div></div> </div>
70
59
<div class="contents">
71
<!-- doxytag: class="Glib::Dir" -->
72
61
<p>Utility class representing an open directory. <a href="classGlib_1_1Dir.html#details">More...</a></p>
74
63
<p><code>#include <glibmm/fileutils.h></code></p>
76
65
<p><a href="classGlib_1_1Dir-members.html">List of all members.</a></p>
77
66
<table class="memberdecls">
78
<tr><td colspan="2"><h2><a name="pub-types"></a>
67
<tr class="heading"><td colspan="2"><h2><a name="pub-types"></a>
79
68
Public Types</h2></td></tr>
80
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classGlib_1_1DirIterator.html">DirIterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Dir.html#a47896460e9d37efc9e93af33e0d1ccf3">iterator</a></td></tr>
81
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classGlib_1_1DirIterator.html">DirIterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Dir.html#a87555a3d202abc6535c0479378289c65">const_iterator</a></td></tr>
82
<tr><td colspan="2"><h2><a name="pub-methods"></a>
69
<tr class="memitem:a47896460e9d37efc9e93af33e0d1ccf3"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classGlib_1_1DirIterator.html">DirIterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Dir.html#a47896460e9d37efc9e93af33e0d1ccf3">iterator</a></td></tr>
70
<tr class="memitem:a87555a3d202abc6535c0479378289c65"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classGlib_1_1DirIterator.html">DirIterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Dir.html#a87555a3d202abc6535c0479378289c65">const_iterator</a></td></tr>
71
</table><table class="memberdecls">
72
<tr class="heading"><td colspan="2"><h2><a name="pub-methods"></a>
83
73
Public Member Functions</h2></td></tr>
84
<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Dir.html#abbcedb96cc9cf9cdfa37ab7164631fe9">Dir</a> (const <a class="elRef" doxygen="libstdc++.tag:http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01672.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a>& path)</td></tr>
85
<tr><td class="mdescLeft"> </td><td class="mdescRight">Opens a directory for reading. <a href="#abbcedb96cc9cf9cdfa37ab7164631fe9"></a><br/></td></tr>
86
<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Dir.html#a8de43168d60f9ffc12842b6d277834de">~Dir</a> ()</td></tr>
87
<tr><td class="mdescLeft"> </td><td class="mdescRight">Closes the directory and deallocates all related resources. <a href="#a8de43168d60f9ffc12842b6d277834de"></a><br/></td></tr>
88
<tr><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="libstdc++.tag:http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01672.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Dir.html#a0b7540337a31b10b5dd5775a46ff2f43">read_name</a> ()</td></tr>
89
<tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieves the name of the next entry in the directory. <a href="#a0b7540337a31b10b5dd5775a46ff2f43"></a><br/></td></tr>
90
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Dir.html#a13bc8d04aef36e4c77eb05710096ab26">rewind</a> ()</td></tr>
91
<tr><td class="mdescLeft"> </td><td class="mdescRight">Resets the directory. <a href="#a13bc8d04aef36e4c77eb05710096ab26"></a><br/></td></tr>
92
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Dir.html#a9d648d71ee0ac37f57b478f8d43a3bf9">close</a> ()</td></tr>
93
<tr><td class="mdescLeft"> </td><td class="mdescRight">Closes the directory and deallocates all related resources. <a href="#a9d648d71ee0ac37f57b478f8d43a3bf9"></a><br/></td></tr>
94
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classGlib_1_1DirIterator.html">DirIterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Dir.html#ae5b5900d5f7838b2437f36609c30d7ca">begin</a> ()</td></tr>
95
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the begin of an input iterator sequence. <a href="#ae5b5900d5f7838b2437f36609c30d7ca"></a><br/></td></tr>
96
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classGlib_1_1DirIterator.html">DirIterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Dir.html#aded8f8cb05e1aed5fb445569c44fff68">end</a> ()</td></tr>
97
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the end of an input iterator sequence. <a href="#aded8f8cb05e1aed5fb445569c44fff68"></a><br/></td></tr>
74
<tr class="memitem:abbcedb96cc9cf9cdfa37ab7164631fe9"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Dir.html#abbcedb96cc9cf9cdfa37ab7164631fe9">Dir</a> (const <a class="elRef" doxygen="libstdc++.tag:http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01672.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a>& path)</td></tr>
75
<tr class="memdesc:abbcedb96cc9cf9cdfa37ab7164631fe9"><td class="mdescLeft"> </td><td class="mdescRight">Opens a directory for reading. <a href="#abbcedb96cc9cf9cdfa37ab7164631fe9"></a><br/></td></tr>
76
<tr class="memitem:a8de43168d60f9ffc12842b6d277834de"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Dir.html#a8de43168d60f9ffc12842b6d277834de">~Dir</a> ()</td></tr>
77
<tr class="memdesc:a8de43168d60f9ffc12842b6d277834de"><td class="mdescLeft"> </td><td class="mdescRight">Closes the directory and deallocates all related resources. <a href="#a8de43168d60f9ffc12842b6d277834de"></a><br/></td></tr>
78
<tr class="memitem:a0b7540337a31b10b5dd5775a46ff2f43"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="libstdc++.tag:http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01672.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Dir.html#a0b7540337a31b10b5dd5775a46ff2f43">read_name</a> ()</td></tr>
79
<tr class="memdesc:a0b7540337a31b10b5dd5775a46ff2f43"><td class="mdescLeft"> </td><td class="mdescRight">Retrieves the name of the next entry in the directory. <a href="#a0b7540337a31b10b5dd5775a46ff2f43"></a><br/></td></tr>
80
<tr class="memitem:a13bc8d04aef36e4c77eb05710096ab26"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Dir.html#a13bc8d04aef36e4c77eb05710096ab26">rewind</a> ()</td></tr>
81
<tr class="memdesc:a13bc8d04aef36e4c77eb05710096ab26"><td class="mdescLeft"> </td><td class="mdescRight">Resets the directory. <a href="#a13bc8d04aef36e4c77eb05710096ab26"></a><br/></td></tr>
82
<tr class="memitem:a9d648d71ee0ac37f57b478f8d43a3bf9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Dir.html#a9d648d71ee0ac37f57b478f8d43a3bf9">close</a> ()</td></tr>
83
<tr class="memdesc:a9d648d71ee0ac37f57b478f8d43a3bf9"><td class="mdescLeft"> </td><td class="mdescRight">Closes the directory and deallocates all related resources. <a href="#a9d648d71ee0ac37f57b478f8d43a3bf9"></a><br/></td></tr>
84
<tr class="memitem:ae5b5900d5f7838b2437f36609c30d7ca"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classGlib_1_1DirIterator.html">DirIterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Dir.html#ae5b5900d5f7838b2437f36609c30d7ca">begin</a> ()</td></tr>
85
<tr class="memdesc:ae5b5900d5f7838b2437f36609c30d7ca"><td class="mdescLeft"> </td><td class="mdescRight">Get the begin of an input iterator sequence. <a href="#ae5b5900d5f7838b2437f36609c30d7ca"></a><br/></td></tr>
86
<tr class="memitem:aded8f8cb05e1aed5fb445569c44fff68"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classGlib_1_1DirIterator.html">DirIterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Dir.html#aded8f8cb05e1aed5fb445569c44fff68">end</a> ()</td></tr>
87
<tr class="memdesc:aded8f8cb05e1aed5fb445569c44fff68"><td class="mdescLeft"> </td><td class="mdescRight">Get the end of an input iterator sequence. <a href="#aded8f8cb05e1aed5fb445569c44fff68"></a><br/></td></tr>
99
89
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
100
90
<div class="textblock"><p>Utility class representing an open directory. </p>
101
91
<p>It's highly recommended to use the iterator interface. With iterators, reading an entire directory into a STL container is really easy: </p>
102
<div class="fragment"><pre class="fragment"> Glib<a class="code" href="classGlib_1_1Dir.html#abbcedb96cc9cf9cdfa37ab7164631fe9" title="Opens a directory for reading.">::Dir</a> dir (directory_path);
103
std::list<std::string> entries (dir.begin(), dir.end());
104
</pre></div> <dl class="note"><dt><b>Note:</b></dt><dd>The encoding of the directory entries isn't necessarily UTF-8. Use <a class="el" href="group__CharsetConv.html#ga6cf95dc00505401594260a360d70c17b" title="Converts a string which is in the encoding used for filenames into a UTF-8 string.">Glib::filename_to_utf8()</a> if you need to display them. </dd></dl>
92
<div class="fragment"><div class="line"> <a class="code" href="classGlib_1_1Dir.html" title="Utility class representing an open directory.">Glib::Dir</a> dir (directory_path);</div>
93
<div class="line"> <a class="codeRef" doxygen="libstdc++.tag:http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00442.html">std::list<std::string></a> entries (dir.begin(), dir.end());</div>
94
</div><!-- fragment --> <dl class="section note"><dt>Note:</dt><dd>The encoding of the directory entries isn't necessarily UTF-8. Use <a class="el" href="group__CharsetConv.html#ga6cf95dc00505401594260a360d70c17b" title="Converts a string which is in the encoding used for filenames into a UTF-8 string.">Glib::filename_to_utf8()</a> if you need to display them. </dd></dl>
105
95
</div><hr/><h2>Member Typedef Documentation</h2>
106
<a class="anchor" id="a87555a3d202abc6535c0479378289c65"></a><!-- doxytag: member="Glib::Dir::const_iterator" ref="a87555a3d202abc6535c0479378289c65" args="" -->
96
<a class="anchor" id="a87555a3d202abc6535c0479378289c65"></a>
107
97
<div class="memitem">
108
98
<div class="memproto">
109
99
<table class="memname">
124
113
<td class="memname">typedef <a class="el" href="classGlib_1_1DirIterator.html">DirIterator</a> <a class="el" href="classGlib_1_1Dir.html#a47896460e9d37efc9e93af33e0d1ccf3">Glib::Dir::iterator</a></td>
116
</div><div class="memdoc">
132
120
<hr/><h2>Constructor & Destructor Documentation</h2>
133
<a class="anchor" id="abbcedb96cc9cf9cdfa37ab7164631fe9"></a><!-- doxytag: member="Glib::Dir::Dir" ref="abbcedb96cc9cf9cdfa37ab7164631fe9" args="(const std::string &path)" -->
121
<a class="anchor" id="abbcedb96cc9cf9cdfa37ab7164631fe9"></a>
134
122
<div class="memitem">
135
123
<div class="memproto">
124
<table class="mlabels">
126
<td class="mlabels-left">
136
127
<table class="memname">
138
129
<td class="memname">Glib::Dir::Dir </td>
140
131
<td class="paramtype">const <a class="elRef" doxygen="libstdc++.tag:http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01672.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a> & </td>
141
132
<td class="paramname"><em>path</em></td><td>)</td>
142
<td><code> [explicit]</code></td>
137
<td class="mlabels-right">
138
<span class="mlabels"><span class="mlabel">explicit</span></span> </td>
141
</div><div class="memdoc">
148
143
<p>Opens a directory for reading. </p>
149
144
<p>The names of the files in the directory can then be retrieved using <a class="el" href="classGlib_1_1Dir.html#a0b7540337a31b10b5dd5775a46ff2f43" title="Retrieves the name of the next entry in the directory.">read_name()</a>. </p>
150
<dl><dt><b>Parameters:</b></dt><dd>
145
<dl class="params"><dt>Parameters:</dt><dd>
151
146
<table class="params">
152
147
<tr><td class="paramname">path</td><td>The path to the directory you are interested in. </td></tr>
156
<dl><dt><b>Exceptions:</b></dt><dd>
151
<dl class="exception"><dt>Exceptions:</dt><dd>
157
152
<table class="exception">
158
153
<tr><td class="paramname"><a class="el" href="classGlib_1_1FileError.html" title="Exception class for file-related errors.">Glib::FileError</a></td><td></td></tr>