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 <string>
20
#include <memory>
21
22
#include "
fileinfo.h
"
23
24
class
DirEntry
25
{
26
public
:
27
~DirEntry
();
28
DirEntry
(
const
DirEntry
&);
29
DirEntry
&
operator=
(
const
DirEntry
&);
30
DirEntry
(
DirEntry
&&);
31
DirEntry
&
operator=
(
DirEntry
&&);
32
bool
is_directory
()
const
;
33
bool
is_regular_file
()
const
;
34
bool
is_symlink
()
const
;
35
std::string
path
()
const
;
36
private
:
37
friend
class
DirIterator
;
38
DirEntry
();
39
struct
Private
;
40
std::unique_ptr<Private>
p
;
41
};
42
43
class
DirIterator
44
{
45
public
:
46
using
value_type
=
DirEntry
;
47
using
difference_type
= std::ptrdiff_t;
48
using
pointer
=
value_type
*;
49
using
reference
=
value_type
&;
50
using
iterator_category
= std::input_iterator_tag;
51
DirIterator
(
const
DirIterator
&it);
52
DirIterator
&
operator=
(
const
DirIterator
&it);
53
DirIterator
(
DirIterator
&&it);
54
DirIterator
&
operator=
(
DirIterator
&&it);
55
DirIterator
operator++
();
56
const
value_type
&
operator*
()
const
;
57
const
value_type
*
operator->
()
const
;
58
59
friend
bool
operator==
(
const
DirIterator
&it1,
const
DirIterator
&it2);
60
friend
bool
operator!=
(
const
DirIterator
&it1,
const
DirIterator
&it2);
61
friend
DirIterator
begin
(
DirIterator
it)
noexcept
;
62
friend
DirIterator
end
(
const
DirIterator
&)
noexcept
;
63
~DirIterator
();
64
65
private
:
66
friend
class
Dir
;
67
DirIterator
();
68
DirIterator
(
const
std::string &path);
69
struct
Private
;
70
std::unique_ptr<Private>
p
;
71
};
72
73
/** Class representing a directory in the file system */
74
class
Dir
final
75
{
76
public
:
77
Dir
();
78
Dir
(
const
std::string &
path
);
79
Dir
(
const
Dir
&d);
80
Dir
&
operator=
(
const
Dir
&d);
81
Dir
(
Dir
&&d);
82
Dir
&
operator=
(
Dir
&&d);
83
~Dir
();
84
void
setPath
(
const
std::string &
path
);
85
std::string
path
()
const
;
86
87
DirIterator
iterator
()
const
;
88
89
bool
isEmpty
(
const
std::string &subdir)
const
;
90
bool
exists
()
const
;
91
std::string
filePath
(
const
std::string &
path
,
bool
acceptsAbsPath=
true
)
const
;
92
bool
exists
(
const
std::string &
path
,
bool
acceptsAbsPath=
true
)
const
;
93
bool
mkdir
(
const
std::string &
path
,
bool
acceptsAbsPath=
true
)
const
;
94
bool
rmdir
(
const
std::string &
path
,
bool
acceptsAbsPath=
true
)
const
;
95
bool
remove
(
const
std::string &
path
,
bool
acceptsAbsPath=
true
)
const
;
96
bool
rename
(
const
std::string &orgName,
const
std::string &newName,
97
bool
acceptsAbsPath=
true
)
const
;
98
bool
copy
(
const
std::string &src,
const
std::string &dest,
bool
acceptsAbsPath=
true
)
const
;
99
std::string
absPath
()
const
;
100
101
bool
isRelative
()
const
;
102
103
static
bool
isRelativePath
(
const
std::string &
path
);
104
static
std::string
currentDirPath
();
105
static
bool
setCurrent
(
const
std::string &
path
);
106
static
std::string
cleanDirPath
(
const
std::string &
path
);
107
108
private
:
109
struct
Private
;
110
std::unique_ptr<Private>
p
;
111
};
112
113
#endif
DirEntry
Definition
dir.h:25
DirEntry::~DirEntry
~DirEntry()
DirEntry::DirEntry
DirEntry(const DirEntry &)
Definition
dir.cpp:37
DirEntry::DirIterator
friend class DirIterator
Definition
dir.h:37
DirEntry::is_directory
bool is_directory() const
Definition
dir.cpp:65
DirEntry::is_regular_file
bool is_regular_file() const
Definition
dir.cpp:70
DirEntry::path
std::string path() const
Definition
dir.cpp:80
DirEntry::p
std::unique_ptr< Private > p
Definition
dir.h:40
DirEntry::operator=
DirEntry & operator=(const DirEntry &)
Definition
dir.cpp:42
DirEntry::is_symlink
bool is_symlink() const
Definition
dir.cpp:75
DirEntry::DirEntry
DirEntry()
Definition
dir.cpp:33
Dir::currentDirPath
static std::string currentDirPath()
Definition
dir.cpp:342
Dir::Dir
Dir()
Definition
dir.cpp:189
Dir::operator=
Dir & operator=(const Dir &d)
Definition
dir.cpp:200
Dir::absPath
std::string absPath() const
Definition
dir.cpp:364
Dir::mkdir
bool mkdir(const std::string &path, bool acceptsAbsPath=true) const
Definition
dir.cpp:295
Dir::setPath
void setPath(const std::string &path)
Definition
dir.cpp:229
Dir::isRelativePath
static bool isRelativePath(const std::string &path)
Definition
dir.cpp:275
Dir::~Dir
~Dir()
Definition
dir.cpp:225
Dir::isRelative
bool isRelative() const
Definition
dir.cpp:270
Dir::remove
bool remove(const std::string &path, bool acceptsAbsPath=true) const
Definition
dir.cpp:314
Dir::copy
bool copy(const std::string &src, const std::string &dest, bool acceptsAbsPath=true) const
Definition
dir.cpp:330
Dir::filePath
std::string filePath(const std::string &path, bool acceptsAbsPath=true) const
Definition
dir.cpp:280
Dir::isEmpty
bool isEmpty(const std::string &subdir) const
Definition
dir.cpp:263
Dir::iterator
DirIterator iterator() const
Definition
dir.cpp:239
Dir::rmdir
bool rmdir(const std::string &path, bool acceptsAbsPath=true) const
Definition
dir.cpp:309
Dir::rename
bool rename(const std::string &orgName, const std::string &newName, bool acceptsAbsPath=true) const
Definition
dir.cpp:321
Dir::cleanDirPath
static std::string cleanDirPath(const std::string &path)
Definition
dir.cpp:357
Dir::setCurrent
static bool setCurrent(const std::string &path)
Definition
dir.cpp:350
Dir::path
std::string path() const
Definition
dir.cpp:234
Dir::exists
bool exists() const
Definition
dir.cpp:257
Dir::p
std::unique_ptr< Private > p
Definition
dir.h:110
DirIterator
Definition
dir.h:44
DirIterator::DirIterator
DirIterator()
Definition
dir.cpp:96
DirIterator::difference_type
std::ptrdiff_t difference_type
Definition
dir.h:47
DirIterator::value_type
DirEntry value_type
Definition
dir.h:46
DirIterator::DirIterator
DirIterator(const DirIterator &it)
Definition
dir.cpp:104
DirIterator::iterator_category
std::input_iterator_tag iterator_category
Definition
dir.h:50
DirIterator::operator++
DirIterator operator++()
Definition
dir.cpp:141
DirIterator::reference
value_type & reference
Definition
dir.h:49
DirIterator::~DirIterator
~DirIterator()
Definition
dir.cpp:137
DirIterator::operator*
const value_type & operator*() const
Definition
dir.cpp:148
DirIterator::operator->
const value_type * operator->() const
Definition
dir.cpp:154
DirIterator::operator==
friend bool operator==(const DirIterator &it1, const DirIterator &it2)
Definition
dir.cpp:160
DirIterator::Dir
friend class Dir
Definition
dir.h:66
DirIterator::p
std::unique_ptr< Private > p
Definition
dir.h:70
DirIterator::operator=
DirIterator & operator=(const DirIterator &it)
Definition
dir.cpp:111
DirIterator::begin
friend DirIterator begin(DirIterator it) noexcept
Definition
dir.cpp:170
DirIterator::operator!=
friend bool operator!=(const DirIterator &it1, const DirIterator &it2)
Definition
dir.cpp:165
DirIterator::end
friend DirIterator end(const DirIterator &) noexcept
Definition
dir.cpp:175
DirIterator::pointer
value_type * pointer
Definition
dir.h:48
fileinfo.h
Dir::Private
Definition
dir.cpp:185
DirEntry::Private
Definition
dir.cpp:29
DirIterator::Private
Definition
dir.cpp:88
src
dir.h
Generated by
1.17.0