return false;
}
- Buffer::iterator rfindSep(void) {
- Buffer::iterator it = buffer.end();
+public:
- // Skip trailing '\0'
- assert(it != buffer.begin());
- --it;
- assert(*it == '\0');
+ Buffer::iterator rfindSep(bool skipTrailing = true) {
+ Buffer::iterator it = end();
// Skip trailing separators
- while (it != buffer.begin()) {
- --it;
- if (isSep(*it)) {
- // Halt if find the root
- if (it == buffer.begin()) {
- return it;
+ if (skipTrailing) {
+ while (it != buffer.begin()) {
+ --it;
+ if (isSep(*it)) {
+ // Halt if find the root
+ if (it == buffer.begin()) {
+ return it;
+ }
+ } else {
+ break;
}
- } else {
- break;
}
}
}
}
- return buffer.end();
+ return end();
}
-
-public:
-
/*
* Constructors
*/
insert(end(), other);
}
+ template <class InputIterator>
+ void erase(InputIterator first, InputIterator last) {
+ buffer.erase(first, last);
+ }
+
char *buf(size_t size) {
buffer.resize(size);
return &buffer[0];
*/
void trimDirectory(void) {
iterator sep = rfindSep();
- if (sep != buffer.end()) {
+ if (sep != end()) {
buffer.erase(buffer.begin(), sep + 1);
}
}
iterator sep = rfindSep();
// No separator found, so return '.'
- if (sep == buffer.end()) {
+ if (sep == end()) {
buffer.resize(2);
buffer[0] = '.';
buffer[1] = 0;
String getProcessName();
String getCurrentDir();
+bool createDirectory(const String &path);
+
bool copyFile(const String &srcFileName, const String &dstFileName, bool override = true);
bool removeFile(const String &fileName);