Doxygen
Toggle main menu visibility
Loading...
Searching...
No Matches
dir.h
Go to the documentation of this file.
1
/******************************************************************************
2
*
3
* Copyright (C) 1997-2021 by Dimitri van Heesch.
4
*
5
* Permission to use, copy, modify, and distribute this software and its
6
* documentation under the terms of the GNU General Public License is hereby
7
* granted. No representations are made about the suitability of this software
8
* for any purpose. It is provided "as is" without express or implied warranty.
9
* See the GNU General Public License for more details.
10
*
11
* Documents produced by Doxygen are derivative works derived from the
12
* input used in their production; they are not affected by this license.
13
*
14
*/
15
16
#ifndef DIR_H
17
#define DIR_H
18
19
#include <memory>
20
#include <string>
21
22
class
DirEntry
23
{
24
public
:
25
~DirEntry
();
26
DirEntry
(
const
DirEntry
&);
27
DirEntry
&
operator=
(
const
DirEntry
&);
28
DirEntry
(
DirEntry
&&);
29
DirEntry
&
operator=
(
DirEntry
&&);
30
bool
is_directory
()
const
;
31
bool
is_regular_file
()
const
;
32
bool
is_symlink
()
const
;
33
std::string
path
()
const
;
34
private
:
35
friend
class
DirIterator
;
36
DirEntry
();
37
struct
Private
;
38
std::unique_ptr<Private>
p
;
39
};
40
41
class
DirIterator
42
{
43
public
:
44
using
value_type
=
DirEntry
;
45
using
difference_type
= std::ptrdiff_t;
46
using
pointer
=
value_type
*;
47
using
reference
=
value_type
&;
48
using
iterator_category
= std::input_iterator_tag;
49
DirIterator
(
const
DirIterator
&it);
50
DirIterator
&
operator=
(
const
DirIterator
&it);
51
DirIterator
(
DirIterator
&&it);
52
DirIterator
&
operator=
(
DirIterator
&&it);
53
DirIterator
operator++
();
54
const
value_type
&
operator*
()
const
;
55
const
value_type
*
operator->
()
const
;
56
57
friend
bool
operator==
(
const
DirIterator
&it1,
const
DirIterator
&it2);
58
friend
bool
operator!=
(
const
DirIterator
&it1,
const
DirIterator
&it2);
59
friend
DirIterator
begin
(
DirIterator
it)
noexcept
;
60
friend
DirIterator
end
(
const
DirIterator
&)
noexcept
;
61
~DirIterator
();
62
63
private
:
64
friend
class
Dir
;
65
DirIterator
();
66
DirIterator
(
const
std::string &path);
67
struct
Private
;
68
std::unique_ptr<Private>
p
;
69
};
70
71
/** Class representing a directory in the file system */
72
class
Dir
final
73
{
74
public
:
75
Dir
();
76
Dir
(
const
std::string &
path
);
77
Dir
(
const
Dir
&d);
78
Dir
&
operator=
(
const
Dir
&d);
79
Dir
(
Dir
&&d);
80
Dir
&
operator=
(
Dir
&&d);
81
~Dir
();
82
void
setPath
(
const
std::string &
path
);
83
std::string
path
()
const
;
84
85
DirIterator
iterator
()
const
;
86
87
bool
empty
(
const
std::string &subdir)
const
;
88
bool
exists
()
const
;
89
std::string
filePath
(
const
std::string &
path
,
bool
acceptsAbsPath=
true
)
const
;
90
bool
exists
(
const
std::string &
path
,
bool
acceptsAbsPath=
true
)
const
;
91
bool
mkdir
(
const
std::string &
path
,
bool
acceptsAbsPath=
true
)
const
;
92
bool
rmdir
(
const
std::string &
path
,
bool
acceptsAbsPath=
true
)
const
;
93
bool
remove
(
const
std::string &
path
,
bool
acceptsAbsPath=
true
)
const
;
94
bool
rename
(
const
std::string &orgName,
const
std::string &newName,
95
bool
acceptsAbsPath=
true
)
const
;
96
bool
copy
(
const
std::string &src,
const
std::string &dest,
bool
acceptsAbsPath=
true
)
const
;
97
std::string
absPath
()
const
;
98
99
bool
isRelative
()
const
;
100
101
static
bool
isRelativePath
(
const
std::string &
path
);
102
static
std::string
currentDirPath
();
103
static
bool
setCurrent
(
const
std::string &
path
);
104
static
std::string
cleanDirPath
(
const
std::string &
path
);
105
106
private
:
107
struct
Private
;
108
std::unique_ptr<Private>
p
;
109
};
110
111
#endif
DirEntry
Definition
dir.h:23
DirEntry::~DirEntry
~DirEntry()
DirEntry::DirEntry
DirEntry(const DirEntry &)
Definition
dir.cpp:38
DirEntry::DirIterator
friend class DirIterator
Definition
dir.h:35
DirEntry::is_directory
bool is_directory() const
Definition
dir.cpp:66
DirEntry::is_regular_file
bool is_regular_file() const
Definition
dir.cpp:71
DirEntry::path
std::string path() const
Definition
dir.cpp:81
DirEntry::p
std::unique_ptr< Private > p
Definition
dir.h:38
DirEntry::operator=
DirEntry & operator=(const DirEntry &)
Definition
dir.cpp:43
DirEntry::is_symlink
bool is_symlink() const
Definition
dir.cpp:76
DirEntry::DirEntry
DirEntry()
Definition
dir.cpp:34
Dir::currentDirPath
static std::string currentDirPath()
Definition
dir.cpp:343
Dir::Dir
Dir()
Definition
dir.cpp:190
Dir::operator=
Dir & operator=(const Dir &d)
Definition
dir.cpp:201
Dir::absPath
std::string absPath() const
Definition
dir.cpp:365
Dir::mkdir
bool mkdir(const std::string &path, bool acceptsAbsPath=true) const
Definition
dir.cpp:296
Dir::setPath
void setPath(const std::string &path)
Definition
dir.cpp:230
Dir::isRelativePath
static bool isRelativePath(const std::string &path)
Definition
dir.cpp:276
Dir::~Dir
~Dir()
Definition
dir.cpp:226
Dir::isRelative
bool isRelative() const
Definition
dir.cpp:271
Dir::remove
bool remove(const std::string &path, bool acceptsAbsPath=true) const
Definition
dir.cpp:315
Dir::empty
bool empty(const std::string &subdir) const
Definition
dir.cpp:264
Dir::copy
bool copy(const std::string &src, const std::string &dest, bool acceptsAbsPath=true) const
Definition
dir.cpp:331
Dir::filePath
std::string filePath(const std::string &path, bool acceptsAbsPath=true) const
Definition
dir.cpp:281
Dir::iterator
DirIterator iterator() const
Definition
dir.cpp:240
Dir::rmdir
bool rmdir(const std::string &path, bool acceptsAbsPath=true) const
Definition
dir.cpp:310
Dir::rename
bool rename(const std::string &orgName, const std::string &newName, bool acceptsAbsPath=true) const
Definition
dir.cpp:322
Dir::cleanDirPath
static std::string cleanDirPath(const std::string &path)
Definition
dir.cpp:358
Dir::setCurrent
static bool setCurrent(const std::string &path)
Definition
dir.cpp:351
Dir::path
std::string path() const
Definition
dir.cpp:235
Dir::exists
bool exists() const
Definition
dir.cpp:258
Dir::p
std::unique_ptr< Private > p
Definition
dir.h:108
DirIterator
Definition
dir.h:42
DirIterator::DirIterator
DirIterator()
Definition
dir.cpp:97
DirIterator::difference_type
std::ptrdiff_t difference_type
Definition
dir.h:45
DirIterator::value_type
DirEntry value_type
Definition
dir.h:44
DirIterator::DirIterator
DirIterator(const DirIterator &it)
Definition
dir.cpp:105
DirIterator::iterator_category
std::input_iterator_tag iterator_category
Definition
dir.h:48
DirIterator::operator++
DirIterator operator++()
Definition
dir.cpp:142
DirIterator::reference
value_type & reference
Definition
dir.h:47
DirIterator::~DirIterator
~DirIterator()
Definition
dir.cpp:138
DirIterator::operator*
const value_type & operator*() const
Definition
dir.cpp:149
DirIterator::operator->
const value_type * operator->() const
Definition
dir.cpp:155
DirIterator::operator==
friend bool operator==(const DirIterator &it1, const DirIterator &it2)
Definition
dir.cpp:161
DirIterator::Dir
friend class Dir
Definition
dir.h:64
DirIterator::p
std::unique_ptr< Private > p
Definition
dir.h:68
DirIterator::operator=
DirIterator & operator=(const DirIterator &it)
Definition
dir.cpp:112
DirIterator::begin
friend DirIterator begin(DirIterator it) noexcept
Definition
dir.cpp:171
DirIterator::operator!=
friend bool operator!=(const DirIterator &it1, const DirIterator &it2)
Definition
dir.cpp:166
DirIterator::end
friend DirIterator end(const DirIterator &) noexcept
Definition
dir.cpp:176
DirIterator::pointer
value_type * pointer
Definition
dir.h:46
Dir::Private
Definition
dir.cpp:186
DirEntry::Private
Definition
dir.cpp:30
DirIterator::Private
Definition
dir.cpp:89
src
dir.h
Generated by
1.19.0