21 #ifndef ELM_SYS_PATH_H
22 #define ELM_SYS_PATH_H
24 #include <elm/string.h>
26 #include <elm/PreIterator.h>
28 namespace elm {
namespace sys {
34 # if defined(__WIN32) || defined(__WIN64)
46 inline Path(
const char *path): buf(path) { }
49 inline Path(
const Path& path): buf(path.buf) { }
66 inline bool equals(
Path& path)
const {
return buf == path.buf; }
74 bool isDir(
void)
const;
89 inline operator bool (
void)
const {
return buf; }
90 inline const char *
operator&(
void)
const {
return &buf; };
97 inline bool ended(
void)
const;
99 inline void next(
void);
101 inline void look(
void);
107 int nextSeparator(
int start = 0)
const;
108 int lastSeparator(
void)
const;
119 : s(str), p(0), n(-1) {
124 : s(iter.s), p(iter.p), n(iter.n) {
140 void Path::PathIter::look(
void) {
150 #endif // ELM_SYS_PATH_H
Path absolute(void) const
Definition: system_Path.cpp:147
String substring(int _off) const
Definition: String.h:93
Path(const Path &path)
Definition: Path.h:49
Definition: PreIterator.h:29
void next(void)
Definition: Path.h:135
bool isDir(void) const
Definition: system_Path.cpp:418
Path(CString path)
Definition: Path.h:47
bool isFile(void) const
Definition: system_Path.cpp:405
String namePart(void) const
Definition: system_Path.cpp:209
static const char SEPARATOR
Definition: Path.h:39
elm::sys::Path Path
Definition: Path.h:116
Path & operator=(const Path &path)
Definition: Path.h:83
bool exists(void) const
Definition: system_Path.cpp:395
bool isWritable(void) const
Definition: system_Path.cpp:441
bool isReadable(void) const
Definition: system_Path.cpp:431
Path & operator=(const String &str)
Definition: Path.h:82
bool isHomeRelative(void) const
Definition: system_Path.cpp:257
Path setExtension(CString new_extension) const
Definition: system_Path.cpp:378
sys::Path dirPart(void) const
Definition: system_Path.cpp:222
Path operator/(const Path &path) const
Definition: Path.h:87
Path & operator=(const char *str)
Definition: Path.h:80
PathIter(const string &str)
Definition: Path.h:118
static const char PATH_SEPARATOR
Definition: Path.h:40
const char * operator&(void) const
Definition: Path.h:90
bool startsWith(const char *str) const
Definition: String.h:127
static Path current(void)
Definition: system_Path.cpp:284
bool isAbsolute(void) const
Definition: system_Path.cpp:235
sys::SystemOutStream & out
Definition: system_SystemIO.cpp:101
bool isExecutable(void) const
Definition: system_Path.cpp:450
Path(void)
Definition: Path.h:45
bool operator==(Path path) const
Definition: Path.h:85
int indexOf(char chr) const
Definition: String.h:99
bool isRelative(void) const
Definition: system_Path.cpp:248
bool ended(void) const
Definition: Path.h:127
int length(void) const
Definition: String.h:73
Path parent(void) const
Definition: system_Path.cpp:189
Path(const char *path)
Definition: Path.h:46
Path item(void) const
Definition: Path.h:131
Path & operator=(CString str)
Definition: Path.h:81
Path(const String &path)
Definition: Path.h:48
io::Output & operator<<(io::Output &out, const Path &path)
Definition: Path.h:111
bool contains(Path &path) const
Definition: Path.h:67
Path append(Path path) const
Definition: system_Path.cpp:172
Path basePart(void) const
Definition: system_Path.cpp:349
bool equals(Path &path) const
Definition: Path.h:66
String extension(void) const
Definition: system_Path.cpp:363
bool operator!=(Path path) const
Definition: Path.h:86
const String & toString(void) const
Definition: Path.h:58
static Path home(void)
Definition: system_Path.cpp:301
Path canonical(void) const
Definition: system_Path.cpp:91
static bool isSeparator(char c)
Definition: Path.h:41
static void setCurrent(Path &path)
Definition: system_Path.cpp:161