Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 41 lines (36 sloc) 1.192 kb
6656fb7 @ewxrjk patternize: initial commit
authored
1 // patternize © 2011 Richard Kettlewell
2 //
3 // This program is free software: you can redistribute it and/or modify
4 // it under the terms of the GNU General Public License as published by
5 // the Free Software Foundation, either version 3 of the License, or
6 // (at your option) any later version.
7 //
8 // This program is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 // GNU General Public License for more details.
12 //
13 // You should have received a copy of the GNU General Public License
14 // along with this program. If not, see <http://www.gnu.org/licenses/>.
15
16 #include <config.h>
17 #include "IO.hh"
18
19 Directory::Directory(const std::string &path): dp(opendir(path.c_str())),
20 name(path) {
21 if(!dp)
22 throw IOError("opening", name, errno);
23 }
24
25 Directory::~Directory() {
26 if(dp)
27 closedir(dp);
28 }
29
30 bool Directory::get(std::string &name) {
31 errno = 0;
32 struct dirent *de = readdir(dp);
33 if(de) {
34 name = de->d_name;
35 return true;
36 }
37 if(errno)
38 throw IOError("reading", name, errno);
39 return false;
40 }
Something went wrong with that request. Please try again.